排序算法FIVE:插入排序InsertSort

时间:2023-03-08 16:47:01
 /**
   *插入排序思路: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 ;
          }
      }
 }