插入排序(Java實現)
阿新 • • 發佈:2018-12-21
基本思想:
把n個待排序的元素看成一個有序表和一個無需表,開始的時候有序表只有1個元素,無序表中有n-1個元素
每次從無序表中取出第一個元素,將它插入到有序表中,使之成為新的有序表,重複n-1次完成整個排序過程。
時間複雜度:O(n的平方)
程式碼實現:
public static void insertSort(int[] arr){ int j=0; int temp=0; //臨時變數 for(int i=1 ; i<arr.length ; i++ ){ //從第二數開始比較 temp = arr[i]; //將當前數插入到已經有序的陣列中 for( j=i-1; j>=0; j--){ if( arr[j] > temp ){ //如果前面的數大於當前數,將他後移 arr[j+1] = arr[j]; }else{ break; } } arr[j+1] = temp; //將當前輪數的數放到應該在的位置 } System.out.println(Arrays.toString(arr)); } //測試程式碼 public static void main(String[] args){ int[] arr = {1,32,2,12,33}; insertSort(arr); }
學習中,有不正確的地方多多指教