int count[256]; void count_sort(char str[]){ int length=strlen(str); char *result=new char[length+1]; for(int i=0;i<length;++i){ count[str[i]]++; } for(int i=1;i<256;++i){ count[i]=count[i]+count[i-1];//找到每个字符应该被放置的区间的下一个位置 } for(int i=0;i<length;++i){ result[--count[str[i]]]=str[i]; } for(int i=0;i<length;++i) cout<<result[i]<<endl; delete []result; }