排序算法——插入排序

算法思想:

  • 将数据按照一定的顺序一个一个的插入到有序的表中,最终得到的序列就是已经排序好的数据。
  • 简单插入排序的时间复杂度也是O(n^2)

举例:

4,2,3,1,5 ,其中4是当前的有序表,将2插入有序表,然后逐步将后面所有元素往前插入

第一次插入:2 4 3 1 5

第二次插入:2 3 4 1 5

第三次插入:1 2 3 4 5

第四次插入:1 2 3 4 5 

代码:

 1 void InsertSort(int*a, int n) {
 2     for (int i = 1; i < n; i++) {
 3         for (int j = i; j>0; j--) {
 4             int tmp;
 5             if (a[j] < a[j - 1]) {
 6                 tmp = a[j];
 7                 a[j] = a[j-1];
 8                 a[j - 1] = tmp;
 9             }
10         }
11     }
12 }

 

posted @ 2020-04-09 11:33  PennyXia  阅读(123)  评论(0编辑  收藏  举报