排序算法之插入排序

时间复杂度: 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     }

posted on 2012-07-18 16:48  leohxj  阅读(150)  评论(0编辑  收藏  举报

导航