插入排序—直接插入排序

插入排序是一種簡單直觀的排序算法,它的工做原理是經過構建有序序列,對於未排序數據,在已排序的序列中從後向前掃描,找到相應位置並插入。插入排序在實現上,在從後向前掃描的過程當中,須要反覆把已排序的元素逐步向後移動,爲最新元素提供插入空間。算法

  • 算法步驟:數組

初始化一個數組。ide

無標題.png

(1)  對於第1個元素,由於沒有比較,直接將其做爲有序的序列。spa

無標題.png


(2) 
從數組中獲取下一個元素,在已經排序的元素序列中從後向前掃描,並進行判斷。若排序序列的元素大於新元素,則將該元素移動下一位置。直到找到已排序的元素小於或者等於新元素的位置。排序

(3)  重複此(2)步驟it

無標題.png

  • 算法實現:table

public class InsertSort {class

 

   public static void main(String[] args) {原理

      int arr[]= {56,20,38,75,26,91,16};List

      System.out.println("排序前:"+Arrays.toString(arr));

      sort(arr);

      System.out.println("排序後:"+Arrays.toString(arr));

   }

   public static void sort(int arr[]) {

      int temp,j;

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

         temp=arr[i];

         for(j=i-1;j>=0 && arr[j]>temp;j--) {

            arr[j+1]=arr[j];

         }

         arr[j+1]=temp;

      }

   }

}

排序前:[56, 20, 38, 75, 26, 91, 16]

排序後:[16, 20, 26, 38, 56, 75, 91]

相關文章
相關標籤/搜索