重溫選擇排序法1 0版

2021-07-05 21:41:21 字數 966 閱讀 9465

package com.limo_03;

//需求:實現選擇排序(預設從小到大)

/** 思想:

*     在每一趟中,將當前最小索引處元素與其之後的所有元素進行比較,如果後者更小就交換,後者就代替前者繼續與後面的

*     元素進行比較,遇到更小的就交換。一趟下來,該趟中最小的元素就按照次序出現在了前面。當只剩下乙個數時整個陣列就變得有序了。

*     

* 詳解:

*     x個數需要比較x-1趟。第m趟開始時,已經有m-1個元素排序後按照次序放在了前面,從第m個元素開始進行排序,即第幾趟就從第幾個

*     元素開始排序,二者一致。氣泡排序法將排序後的數按照次序放在陣列的後面(找每一趟中大的數),但而選擇排序是放在前面

*     (找每一趟中小的數)所以選擇排序中,迴圈每次都是到陣列的最後的。

* 舉例:

*     5個數需要比較4趟。第3趟開始時,已經有2個元素排序後按照次序放在了前面,從第3個元素開始進行排序,到陣列的最後

*     5個數需要比較4趟。第4趟開始時,已經有3個元素排序後按照次序放在了前面,從第4個元素開始進行排序,到陣列的最後

*    

*/public class quicksort ;

system.out.println("遍歷前:");

printarray(arr);

// 外層迴圈控制趟數:x個數比較x-1趟

for (int x = 0; x < arr.length - 1; x++) }}

system.out.println("遍歷後");

printarray(arr);

}public static void printarray(int arr) else

}string result = sb.tostring();

system.out.println("結果是:" + result);}}

排序法之選擇排序法

首先通過陣列中元素的比較方式來分析 用陣列中第乙個角標的元素與陣列中第二個角標的元素進行比較,發現9比6大,進行位置置換,此處應該定義乙個三方變數,用來記錄住置換過程的元素值,然後再用第乙個角標的元素與下乙個角標元素進行比較,按照全面的原則進行置換位置,如果前者小於後者,則不置換位置,一次比較,當第...

氣泡排序法 選擇排序法

相鄰兩個數進行比較 如果前者比後者大 就把前者和後者互換 比如十個數 經過九次比較 就可以得到乙個最大的數字於排列的最末端 再經過八次比較 可以得到乙個第二大的數 依次類推 即最大的數一次一次冒泡上來。include int main printf n 資料排序 for i 0 i 9 i 列印資料...

選擇排序法

1.直接選擇排序法 基本思想 每一趟 第i趟,i 0,1,2,n 1 在後面n i個待排序記錄中選出關鍵字最小的記錄,作為有序記錄序列的第i個記錄。直到第n 2趟完,待排記錄只剩下乙個,不完再選了!直接選擇排序法 void selectionsort int parry,int ilen if k ...