插入排序InsertSort

/**
  *插入排序思路:O(n^2)
*    最外层一个循环,从第二个数到最后一个,变量为i
*        每个数存储在key变量中
*        变量j,是左边已经排好序的数组的上限
*        判断key与前面每一个数比较      1,3,5,2,4,6,8,5,9,10
*                            《-------
*            如果key小于前一个并且已经排好序的数组没有越界        
*            调换两个数
*        j向左移
*        
*        把key放在指定位置  j+1
*
*/

public  class  InsertSort
{
     public static  void insertSort(int[] resouceArr)
     {
    
         for(int i = 1 ; i <  resouceArr.length ; i++ )
         {
             int key = resouceArr[i] ;
             int j = i - 1 ; 

             while( j > 0 && resouceArr[j] > key)
             {
                 resouceArr[j+1] = resouceArr[j] ;
                 j = j - 1 ;
             }
             resouceArr[j+1] = key ; 
         }
     }    
}

 

posted @ 2013-11-04 18:51  天蓝印象  阅读(197)  评论(0编辑  收藏  举报