選擇排序
- 思想
- 代碼
- 復雜度分析
- 其他排序
思想
將陣列看為完全無序陣列,遍歷無序區間找出最大元素,與無序區間的最后一個進行交換,重復此程序直至陣列完全有序,
代碼
public static void selSort(int[] array){
//n個數,需要比較(n-1)趟
for (int i = 0; i <array.length-1 ; i++) {
//1.假設第0號下標的元素為最大元素
int maxIndex=0;
//區間劃分
//無序區間:[0,array.length-i)
//有序區間:[array.length-i,array.length)
//遍歷找最大元素
for (int j = 1; j <array.length-i; j++) {
if (array[j]>array[maxIndex]){
maxIndex=j;
}
}
//找到最大元素,將其與無序區間的最后一個元素進行交換
swap(array,maxIndex,array.length-i-1);
}
System.out.println(Arrays.toString(array));
}
private static void swap(int[] array, int i, int j) {
int temp=array[i];
array[i]=array[j];
array[j]=temp;
}
復雜度分析
| 復雜度 | |
|---|---|
| 時間復雜度 | O(n^2) |
| 空間復雜度 | O(1) |
| 穩定性 | 不穩定 |
其他排序
排序2—插入排序
排序3—冒泡排序
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/266703.html
標籤:其他
上一篇:Vue.js-總結
