排序算法之插入排序

时间复杂度: O(n^2).

思路:

1.假定第一个数据已经排序好了.

2.找到第i个数据应该在已经排序好的数组中的插入位置j

3.移动数据,利用tmp保存第i个数据,然后把位置后移。插入tmp到位置j

 

代码:

 1     public void insertSort(int[] num) {

 2         for (int i = 1; i < num.length; i++) {

 3             int j = -1;

 4             while(j <= i && (num[i] > num[++j]));

 5             if ( j < i) {

 6                 int tmp = num[i];

 7                 for (int k = i; k > j; k--) {

 8                     num[k] = num[k-1];

 9                 }

10                 num[j] = tmp;

11             }

12         }

13     }

你可能感兴趣的:(插入排序)