排序算法FIVE:插入排序InsertSort

 1 /**

 2   *插入排序思路:O(n^2)

 3 *    最外层一个循环,从第二个数到最后一个,变量为i

 4 *        每个数存储在key变量中

 5 *        变量j,是左边已经排好序的数组的上限

 6 *        判断key与前面每一个数比较      1,3,5,2,4,6,8,5,9,10

 7 *                            《-------

 8 *            如果key小于前一个并且已经排好序的数组没有越界        

 9 *            调换两个数

10 *        j向左移

11 *        

12 *        把key放在指定位置  j+1

13 *

14 */

15 

16 public  class  InsertSort

17 {

18      public static  void insertSort(int[] resouceArr)

19      {

20     

21          for(int i = 1 ; i <  resouceArr.length ; i++ )

22          {

23              int key = resouceArr[i] ;

24              int j = i - 1 ; 

25 

26              while( j > 0 && resouceArr[j] > key)

27              {

28                  resouceArr[j+1] = resouceArr[j] ;

29                  j = j - 1 ;

30              }

31              resouceArr[j+1] = key ; 

32          }

33      }    

34 }

 

你可能感兴趣的:(insert)