[转贴] C++常用排序算法
来源:互联网 发布:商贸公司淘宝 编辑:程序博客网 时间:2024/05/21 22:46
//选择排序法SelectionSort(int arr[],int n) template void SelectionSort(T arr[],int n) { int smallIndex; //表中最小元素的下标 int pass,j; //用来扫描子表的下标 T temp; //用来交换表元素的临时变量 //pass的范围是0~n-2 for (pass=0;passarr[largeIndex]) largeIndex=j; if(largeIndex!=rightPass) { temp=arr[rightPass]; arr[rightPass]=arr[largeIndex]; arr[largeIndex]=temp; } //从两头收缩子表 leftPass++; rightPass--; } } //自编冒泡法排序算法函数bubbleSort()的实现 template int bubbleSort(T arr[],int n) { bool exchanged=false; //是否发生交换 int i,j; //用于遍历子表的下标 T temp; //用于交换元素的临时变量 //开始遍历过程,以下标j构成子表,共有n-1个子表 for (j=n-1;j>=0;j--) //j从后往前收缩n-1~0,以构成子表0~n-1,0~n-2,0~n-3..0~1 { exchanged=false; for (i=0;iarr[i+1]) { temp=arr[i]; arr[i]=arr[i+1]; arr[i+1]=temp; exchanged=true; } } if (!exchanged) return n-j-1;//如果在一次遍历中没有发生交换,则表示已经 //排序好,中断遍历过程 } return n-1-j; } //冒泡法排序一般算法函数bubbleSortEx()的实现 template int bubbleSortEx(T arr[],int n) { int i,pass; //用于遍历子表的下标 T temp; //用于交换元素的临时变量 //开始遍历过程,以下标j构成子表,共有n-1个子表 for (pass=0;passarr[i+1]) { temp=arr[i]; arr[i]=arr[i+1]; arr[i+1]=temp; } } } return pass; }
- 常用排序算法(C描述)
- c/c++常用算法(9) -- 基本排序算法(交换排序)
- c/c++常用算法(10) -- 基本排序算法(选择排序)
- c/c++常用算法(11) -- 基本排序算法(插入排序)
- c/c++常用算法(12) -- 基本排序算法(归并排序)
- 常用排序算法总结及C源程序
- 常用排序算法及C例程
- C语言常用排序算法(一)
- C语言常用排序算法(二)
- C 语言常用的排序算法
- 用C语言实现常用排序算法
- 常用排序算法汇总(C版)
- 常用排序算法——C语言
- 常用排序算法——C实现
- 常用排序算法汇总(C版)
- 常用排序算法C语言实现
- Objective-C实现常用的排序算法
- C 语言常用的排序算法
- Asp.NET生成Excel文件 之 一
- 【File Field控件】上传图片的同时直接显示图片的属性设置方法
- 内部排序算法比较
- 问世间情为何物
- 函数指针和函数引用的区别
- [转贴] C++常用排序算法
- COM技术初探
- 在C/C++开发中容易被忽略却比较有用的两个函数
- 后天的考试把握把大,明天的电工学一定要好好考,毕竟监考是毕设老师的朋友
- 网站标准/CMS/ADS....
- 你会用sizeof吗?(vc篇)
- [转载] 透明窗体的实现
- Const用法小结
- 这个双休日要分析cattom那个RPG游戏的代码,昨天分析了他另个程序的代码