天天看點

插入排序法小例子

插入排序方法類

public void sort(int arr[]){

        for(int i=1;i<arr.length;i++){
            int insertVal=arr[i];
                //insertVal是準備用于與前一個數比較的數
            int index=i-1;
            while(index>=0&&insertVal<arr[index])

            {
                //上面的判斷思想是,先确認index在i-1過後大于等于0;
                //讓後讓數組裡的i 與 i-1 ,就是前後倆數去比較,現在是如果後面的數小與前面的數的情況

                arr[index+1]=arr[index];
                index--;

            }
            //如果前面while的條件不比對,也就是說後面插入的數比前面一個大
            arr[index+1]=insertVal;

        }



    }      

算法思想:

①把數組裡面的無序數中的第一個index=0的數,預設當做一個序列隊伍;

②然後定義一個數insertVal,取出的值為index=0後面的一個數;

③将兩者比較,

如果insertVal比最早的那個數大,那麼就直接讓這個數的index+1,那麼就是直接排在比較數後面了;