| 查看: 314 | 回复: 2 | |||
| 当前主题已经存档。 | |||
[交流]
【求助】求助一算法程序
|
|||
|
给一个字符数组{’c’,’a’,’d’,’e’,’b’,’h’}按字母表顺序排序,并输出排序前和排序后的结果。 请教各位老师和同学,这个程序该如何编写,非常感谢您的帮助! |
» 猜你喜欢
有没有人能给点建议
已经有5人回复
假如你的研究生提出不合理要求
已经有12人回复
实验室接单子
已经有7人回复
全日制(定向)博士
已经有5人回复
萌生出自己或许不适合搞科研的想法,现在跑or等等看?
已经有4人回复
Materials Today Chemistry审稿周期
已经有4人回复
参与限项
已经有3人回复
对氯苯硼酸纯化
已经有3人回复
所感
已经有4人回复
要不要辞职读博?
已经有7人回复
formleaf
木虫 (正式写手)
- 应助: 0 (幼儿园)
- 贵宾: 1.097
- 金币: 3383.1
- 散金: 2780
- 红花: 3
- 帖子: 991
- 在线: 69.6小时
- 虫号: 698652
- 注册: 2009-02-09
- 性别: GG
- 专业: 组合数学
一个简单的排序算法,但效率不高
★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
mgflyx_001(金币+1,VIP+0):谢谢热心帮助! 12-22 14:52
小木虫(金币+0.5):给个红包,谢谢回帖交流
mgflyx_001(金币+1,VIP+0):谢谢热心帮助! 12-22 14:52
|
#include using namespace std; void csort(char *s,int n) { char c; int t; for(int i=0; i c=s; for(int j=i+1; j if(s[j] s[t]=s; s=c; } } int main() { char s[]={'c','a','d','e','b','h','\0'}; cout << s << endl; csort(s,6); cout << s << endl; return 0; } |
2楼2009-12-22 12:54:20
★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
无奈的云(金币+1):谢谢热心解答! 2010-02-03 14:40
小木虫(金币+0.5):给个红包,谢谢回帖交流
无奈的云(金币+1):谢谢热心解答! 2010-02-03 14:40
|
与数字的排序方法一样,把int类型改为char类型 以下是C语言权威《TheCProgrammingLanguage》中的例程,在这个例程中,对于数组v的left到right号元素以递增顺序排序。 intarr[]={14,10,11,5,6,15,0,15,16,14,0,8,17,15,7,19,17,1,18,7}; /*swap函数:交换v与v[j]的值*/ inlinevoidswap(intv[],inti,intj) { inttemp; temp=v; v=v[j]; v[j]=temp; } voidqsort(intv[],intleft,intright) { inti,last; voidswap(intv[],inti,intj); if(left>=right)/*若数组包含的元素个数少于两个*/ return;/*则不执行任何操作*/ swap(v,left,(left right)/2);/*将划分子集的元素*/ last=left;/*移动到v[0]*/ for(i=left 1;i<=right;i )/*划分子集*/ if(vswap(v, last,i); swap(v,left,last);/*恢复划分的元素*/ qsort(v,left,last-1); qsort(v,last 1,right); } intmain(){ qsort(arr,0,19); inti; for(i=0;i<=19;printf("%d",arr[i ])); scanf("\n" ;} |
3楼2010-02-03 13:48:11












回复此楼
;