插入排序
来源:互联网 发布:禁止吸烟网络图片大全 编辑:程序博客网 时间:2024/05/29 15:32
减治法思想,通过对较小已排序数组的扩充,得到整体有序。对于少量元素的排序,它是一个有效的算法。算法保证在对第j个元素进行排序时,前面的[0,...,j-1]已有序。
效率:
在最好情况下,待排序数组已有序,此时算法属于O(N)。
在最坏情况下,待排序数组已反向排序,此时算法属于O(N^2),此时和比较排序的效率相同。
如果输入基本有序,则该算法运行很快,这使它优于一些基本排序,例如:选择排序和冒泡排序。
代码:
参考:
《算法导论》 P9-P16.
效率:
在最好情况下,待排序数组已有序,此时算法属于O(N)。
在最坏情况下,待排序数组已反向排序,此时算法属于O(N^2),此时和比较排序的效率相同。
如果输入基本有序,则该算法运行很快,这使它优于一些基本排序,例如:选择排序和冒泡排序。
代码:
#include <stdio.h>void InserSort(int *array, unsigned int n){int i, j;int temp;/* 排列n个数要进行n-1趟比较 */for (i = 1; i < n; i++){temp = array[i];for (j = i-1; j >= 0 && array[j] > temp; j--)array[j+1] = array[j];array[j+1] = temp;}}int main(void){int i;int array[] = {34, 8, 64, 51, 32, 21};int len = sizeof(array)/sizeof(array[0]); /* 整形数组大小计算方法 */InserSort(array, len);for (i = 0; i < len; i++)printf("%d ", array[i]);printf("\n");return 0;}
参考:
《算法导论》 P9-P16.
0 0
- 插入排序-【插入排序】
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- JS获取Jquery获取radio值等常用方法
- Secrets of the Ftrace function tracer
- HDU 1505
- UNIX环境高级编程(八)进程控制
- 用jointjs绘制微博关系图
- 插入排序
- 一些小技巧在布局上
- UITextView关闭键盘
- MySql数据库索引的学习
- POJ 3083Children of the Candy Corn(DFS*2+BFS)
- c++-运算符的重载
- 树莓派驱动ov7670
- String
- 自定义可迭代类 & yield