排序算法
来源:互联网 发布:江苏教育网络培训平台 编辑:程序博客网 时间:2024/05/16 17:28
冒泡排序:遍历待排序的数组,每次遍历比较相邻的两个元素,如果他们的排列顺序错误就交换他们的位置,经过一趟排序后,最大的元素会浮置数组的末端。重复操作,直到排序完成
public void bubbleSort() {
int i, j;
for (i = 0; i < nElems - 1; i++) {
for (j = 0; j < nElems - i - 1; j++) {
if (a[j] > a[j + 1]) {
swap(j, j + 1);
}
}
}
}
选择排序:是从所有序列中先找到最小的,然后放到第一个位置。之后再看剩余元素中最小的,放到第二个位置……以此类推,就可以完成整个的排序工作了。可以很清楚的发现,选择排序是固定位置,找元素。相比于插入排序的固定元素找位置,是两种思维方式。
改进了冒泡排序,交换次数(O(n*n)-->O(n)),但比较次数仍为O(n*n)
int out,in,min;
for(out=0;out<size-1;out++){
min=out;
for(in=out+1;in<size;in++){
if(a[in]<a[min]){//not in+1
min=in;
}
}
swap(out,min);
}
不变性:下标<=out的位置的数据项总是有序的
插入排序:比冒泡排序快一倍,比选择排序快一点,更蛮烦;插入排序的基本思想是:每步将一个待排序的纪录,按其关键码值的大小插入前面已经排序的文件中适当位置上,直到全部插入完为止。每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕。
插入排序方法分直接插入排序和折半插入排序两种
http://blog.chinaunix.net/uid-28894229-id-4625483.html
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- R语言数据分析、展现与实例(04)
- http长/短轮询和WebSocket 的介绍和比较
- 特征提取(Detect)、特征描述(Descriptor)、特征匹配(Match)详解
- Android优化相关整理
- [bzoj4766]文艺计算姬
- 排序算法
- 记录几个常用的Git命令。
- windos本地传送文件到winsever中
- html交互
- Tomcat项目部署详细教程
- Oracle数据库求两部分结果集的交集
- 编码问题2-解决UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position
- 【Codeforces 781 A Andryusha and Colored Balloons】+ DFS
- linux0.11源码研究---exit.c