1. 程式人生 > >插入排序(Java實現)

插入排序(Java實現)

基本思想:

把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);
}



學習中,有不正確的地方多多指教