ddu-java排序

直接插入排序

public static int[] insertSort(int[] array) {
    for (int i = 1; i < array.length; i++) {
        int temp = array[i];
        for (int j = i - 1; j >= 0 && temp < array[j]; j--) {//temp之前的值挨個比較,互換
            array[j + 1] = array[j];
            array[j] = temp;
        
        }
    }
    return array;
}
  • 結(jié)果
    3421互換一次
    3241互換一次
    2341互換一次
    2314互換一次
    2134互換一次
    1234互換一次
  • 外循環(huán)表現(xiàn)出來的就是插入到一個位置
  • 內(nèi)循環(huán)就是用當前的temp值跟前面的數(shù)字挨個比較,符合條件進行互換。

簡單選擇排序 :

  • 在要排序的一組數(shù)中,選出最小的一個數(shù)與第一個位置的數(shù)交換;
    然后在剩下的數(shù)當中再找最小的與第二個位置的數(shù)交換,如此循環(huán)到倒數(shù)第二個數(shù)和最后一
    個數(shù)比較為止。

    public static int[] insertSort(int[] array) {
    int i=0;
    int position;//最小值的位置
    for (;i<array.length;i++){
    int temp=array[i];
    position=i;
    int j=i+1;
    for (;j<array.length;j++){
    if (array[j]<temp){
    temp=array[j];
    position=j;
    }
    }
    array[position]=array[i];
    array[i]=temp;
    }

     return array;
    

    }
    比如 4,3,2,1; // i=0;在i后面找到一個最小值,確定位置和數(shù)值,然后跟i位置交換。
    1,3,2,4;
    1,2,3,4

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容