1. 程式人生 > >【資料結構與演算法】插入排序

【資料結構與演算法】插入排序

 插入排序是演算法中的基礎入門和氣泡排序、選擇排序都是必要掌握的。他們都是對比排序,需要通過比較大小交換位置,進行排序。

插入排序的實現思路:

1、 從第一個元素開始,這個元素可以認為已經被排序。

2、取出下一個元素,在已排序的序列中從後往前掃描。

3、如果該元素小於小於前一個元素,將兩者進行交換,再與前一個元素進行比較。

4、重複第三步,直到找到已排序的元素小於或等於新元素的位置。

5、將新元素插入該位置,重複第二步。

程式碼實現如下:

public class insertSortTest {
    public static void main(String[] args) {
         int[] arr = {2,5,3,56,12,34};
         insertSort(arr);
         for(int i = 0;i < arr.length;i++){
             System.out.println("i:"+arr[i]);
         }
    }
     public static void insertSort(int[] arr){
          for(int i = 1;i < arr.length;i++){
               for(int j = i;(j > 0 && arr[j] < arr[j-1]);j--){
                    swap(arr,j,j-1);
               }
          }
     }
     public static void swap(int[] arr,int m,int n){
          int a = arr[m];
          arr[m] = arr[n];
          arr[n] = a;
     }

}