【資料結構與演算法】插入排序
阿新 • • 發佈:2018-11-19
插入排序是演算法中的基礎入門和氣泡排序、選擇排序都是必要掌握的。他們都是對比排序,需要通過比較大小交換位置,進行排序。
插入排序的實現思路:
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; } }