插入排序

1 插入排序使用的方法是增量方法

  首先将已有的数据排好,(玩扑克的时候等待拿牌)

  然后插入新数据,进行排序, (将拿到的牌插入到正确的位置里)

  最后再次形成排好的数据 等待新数据的插入 (再次等待下一轮拿牌)

2 插入排序的算法复杂度为  n的平方

3 插入排序属于原地排序算法,在排序数组时只有常数个元素存放到数组以外的空间去

 1 void InsertSort(int array[], int size)
 2 {
 3     for (int i=1; i<size; ++i)
 4     {
 5         int key = array[i];  
 6         int j=i-1;
 7      //进入循环前 数组内 从小到大(下标从0到j)已排好序            
 8         while(j>=0 && array[j]>key)  //当前最大值 大于 新插入的数据(key)的时候
 9         {                
10             array[j+1] = array[j];  //将该值向右移动一个位置
11             j--;            //下标指向新的最大值,准备与key再次进行比较
12         }
13         array[j+1] = key;
14     }
15 }
16 void main()
17 {
18     int Array[10] = {4, 1, 3, 2, 16, 9, 10, 14, 8, 7};
19 
20     InsertSort(Array, 10);
21 
22     for (int i=0; i<10; ++i)
23     {
24         cout << Array[i] << endl;
25     }
26 
27     system("pause");
28 }
原文地址:https://www.cnblogs.com/sevenPP/p/3608997.html