排序之一、直接插入排序
2010-05-12 15:18
225 查看
直接插入排序的作法是:
每次从无序表中取出第一个元素,把它插入到有序表的合适位置,使有序表仍然有序。第一趟比较前两个数,然后把第二个数按大小插入到有序表中; 第二趟把第三个数据与前两个数从后向前扫描,把第三个数按大小插入到有序表中;依次进行下去,进行了(n-1)趟扫描以后就完成了整个排序过程。
直接插入排序属于稳定的排序,时间复杂性为o(n^2),空间复杂度为O(1)。
每次从无序表中取出第一个元素,把它插入到有序表的合适位置,使有序表仍然有序。第一趟比较前两个数,然后把第二个数按大小插入到有序表中; 第二趟把第三个数据与前两个数从后向前扫描,把第三个数按大小插入到有序表中;依次进行下去,进行了(n-1)趟扫描以后就完成了整个排序过程。
直接插入排序属于稳定的排序,时间复杂性为o(n^2),空间复杂度为O(1)。
void InsertSort(int A[], int n) { int curNum =0; int i,j; for(i = 1; i < n; i++) // 待排序数据 { curNum = A[i]; for(j = i-1; j >= 0; j--) // 已排序数据 { if(A[j]>curNum){ A[j+1]=A[j]; } else break; } A[j+1] = curNum; } }
相关文章推荐
- 白话经典算法系列之二 直接插入排序的三种实现
- 插入排序-直接插入排序、希尔排序
- 直接插入排序(Straight Insertion Sort)
- 【算法系列】排序算法(2)直接插入排序
- 直接插入排序 一个简单示例
- C++直接插入排序
- 直接插入排序
- 直接插入排序
- 直接插入排序。。。
- 直接插入排序
- oc中的排序 快速排序,冒泡排序,直接插入排序和折半插入排序,希尔排序,堆排序,直接选择排序
- 插入排序----直接插入排序----java实现
- Java实现直接插入排序
- 直接插入排序
- 直接插入排序,希尔排序
- 改进版直接插入排序
- C语言实现 排序源程序(包括直接插入、希尔、冒泡、快速、简单选择、堆排序)
- 插入排序之直接插入排序
- c++ 直接插入排序
- 插入排序——直接插入排序