七大排序算法系列之直接插入排序
来源:互联网 发布:电机数据大全安装尺寸 编辑:程序博客网 时间:2024/06/10 18:40
直接插入排序算法介绍
直接插入排序和简单选择排序类似,都是将数据分成有序区和无序区,直接插入排序将从无序区中的第一个数据直接和有序区的最后一个数据进行比较,直接插入到有序区中。
1.初始时,a[0]是一个有序区,无序区a[1...n-1]。
2.i=1,将a[i]并入当前有序区a[0...i-1]共同形成有序区a[0...i]。例如第一趟,将a[1]和a[0]进行比较,如果小,则交换。
3.如果i<n,则重复上一步,否则排序完成。
a[i]先和前面一个数据a[i-1]比较,如果a[i-1]>a[i],则令temp=a[i],j=i-1。然后一边将数据a[j]向后移动一边向前搜索,当有数据a[j]<temp时停止并将temp放到a[j + 1]处。
实现代码:
void insert_sort_1(int *array,int n){for(int i=1;i<n;i++)if(array[i]<array[i-1]){//如果无序表的第一个比有序表的最后一个大,则仍然是有序表int temp = array[i];//把无序表的第一个元素存起来for(int j=i-1;j>=0&&array[j]>temp;j--)//如果有序中的比无序的大,则交换array[j+1]=array[j];array[j+1]=temp;//如果j=-1,则有序表中的元素都比该元素大,则该元素成为第一元素}}
- 七大排序算法系列之直接插入排序
- 数据结构和算法系列7 七大排序之直接插入排序和希尔排序
- 七大排序算法之插入排序
- 《七大排序算法》(三)之直接插入排序排序(Java实现)
- 数据结构和算法系列6 七大排序之直接选择排序和堆排序
- 七大排序算法系列之冒泡排序
- 七大排序算法系列之希尔排序
- 七大排序算法系列之快速排序
- 七大排序算法系列之归并排序
- 七大排序算法系列之堆排序
- 算法-插入排序之直接插入排序
- 排序算法-插入排序之直接插入
- 排序算法之直接插入排序算法
- 排序系列之直接插入排序
- 排序系列之--直接插入排序
- 基本排序系列之直接插入排序
- 算法之直接插入排序
- 排序算法之直接插入
- 无法嵌入互操作类型...请改用适用的接口 解决办法
- POJ 2115 C Looooops
- linux 中断机制浅析
- EXE加密程序
- js判断单元格没有图片和内容
- 七大排序算法系列之直接插入排序
- 【转】KVM/JVM和Dalvik
- writeback机制源码分析
- GetLastError错误代码含义
- HDU1856:More is better
- .NET混淆器Dotfuscator的五大看点
- 关于multiset中遇到的一个错误
- 读老罗的Android之旅中hello的例子编写整理
- session与cookie的区别