排序算法-插入算法
来源:互联网 发布:标准曲线计算软件 编辑:程序博客网 时间:2024/05/31 13:14
插入排序:将一个数插入一对有序的的数列。
先假设数列第一个值为有序,软后第二个值插入第一个数列。
然后把第三个值插入前两个数列。
以此类推,知道把所有数排列完毕。
- void InsertSort(int a[], int n)
- {
- for(int i= 1; i<n; i++){
- if(a[i] < a[i-1]){ //若第i个元素大于i-1元素,直接插入。小于的话,移动有序表后插入
- int j= i-1;
- int x = a[i]; //复制为哨兵,即存储待排序元素
- a[i] = a[i-1]; //先后移一个元素
- while(x < a[j]){ //查找在有序表的插入位置
- a[j+1] = a[j];
- j--; //元素后移
- }
- a[j+1] = x; //插入到正确位置
- }
- print(a,n,i); //打印每趟排序的结果
- }
- }
最差的情况是 n*(n-1)/2;
时间复杂度O(n*n);
0 0
- 排序算法-插入算法
- 算法----插入排序算法
- 排序算法-插入算法
- 排序算法-插入算法
- 算法-排序算法-插入排序
- 排序算法--插入排序算法
- 排序算法----插入排序算法
- 排序算法-插入排序
- 排序算法--插入排序
- 排序算法---插入排序
- 排序算法-插入排序
- 排序算法-插入排序
- 排序算法--插入排序
- 排序算法-插入排序
- 排序算法-插入排序
- 排序算法---插入排序
- 排序算法--插入排序
- 排序算法--插入排序
- 高性能网络编程(4)--TCP连接的关闭 (B)
- 使用screen避免远程连接异常中断
- Latex排版全解
- 一个类似JQuery的精简版框架
- 刮刮卡功能的具体实现
- 排序算法-插入算法
- 高性能网络编程(5)--IO复用与并发编程 (B)
- SQL截取字符串
- HTTP与HTTPS的区别
- 工作中经常用到的Eclipse快捷键
- poj 3749 破译密码
- 如何规划容量
- Tensorflow学习笔记(三)MNIST初探
- Soot -- 关于语句图(UnitGraph)的说明