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 ...