整数排序-未完待续
来源:互联网 发布:c语言buffer用法 编辑:程序博客网 时间:2024/05/19 01:31
给一组整数,按照升序排序,使用选择排序,冒泡排序,插入排序或者任何 O(n2) 的排序算法。
(1)冒泡排序,重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
void sortIntegers(vector<int>& A) { int tmp = 0; int N = A.size(); int i,j; for(i=0; i<N-1; i++) { for(j=i+1; j<N; j++) { if(A[i]>A[j]) { tmp = A[i]; A[i] = A[j]; A[j] = tmp; } } } }
(2)选择排序,每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。
int tmp = 0; int N = A.size(); int i,j, index_min; for(i=0; i<N-1; i++) { index_min = i; for(j=i+1; j<N; j++) { if(A[index_min]>A[j]) { index_min=j; } } if(index_min != i) { tmp = A[i]; A[i] = A[index_min]; A[index_min] = tmp; } } }(3)直接插入排序,把待排序的纪录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的纪录插入完为止,得到一个新的有序序列。
void sortIntegers(vector<int>& A) { int tmp = 0; int N = A.size(); int i,j, flag_j, insert_tmp; if(A[0]>A[1]) { tmp = A[0]; A[0] = A[1]; A[1] = tmp; } for(i=2; i<=N-1; i++) { insert_tmp = A[i]; flag_j = i; for(j=i-1; j>=0; j--) { if(A[j]>=insert_tmp) { A[j+1] = A[j]; flag_j = j; } } if(flag_j!=i) { A[flag_j] = insert_tmp; } } }
阅读全文
0 0
- 整数排序-未完待续
- 未完待续
- 未完待续
- 未完待续
- 未完,待续
- 未完待续~~~~~~~~~~~~~~~~
- 未完待续
- 未完待续
- 未完待续
- 未完待续
- 未完待续
- 排序算法-选择排序和插入排序比较(待续未完)
- 排序代码集合--C语言版(未完待续)
- 排序算法再总结再分析java版---未完待续
- 基础排序算法个人小结(未完待续).md
- Java 实现常用排序算法(未完待续。。。)
- 未完,待续……
- dojo入门(未完待续)
- 大家快来A水题
- Springboot基础优酷篇
- scrapy爬虫++mysql数据库+tomcat服务器+android客户端项目demo
- 汉诺塔问题——Java详细算法分析
- maven项目build success,但是pom.xml中有红色字体
- 整数排序-未完待续
- 阿里云P2P内容分发网络(PCDN)实操手册
- js中的闭包(Closure)简例与理解(精华)
- 正则表达式的一些详解
- 图像边缘检测
- ElasticSearch的安装
- Servlet应用程序(4)----数据库
- 对bootstrap的总结
- 基于注解的spring aop小例子