核心就是找到最小(大)的元素,並在剩餘元素中繼續找最小(大)並放有序數列後,重複n次;時間複雜度o(n²),不是很穩定啊!
1.首先在未排序的數列中找到最小(大)的元素放在首位
2.再剩餘元素中繼續挑出乙個最小(大)的元素,放在步驟1所在序列的後面
3.重複…
/**
* 選擇排序,先找到最小(大)的元素
* 再在剩餘元素中繼續挑最小(大)元素,放在有序數列尾部
* 重複以上步驟
*/public
int[
]selectionsort
(int
sourcearray)
}//內迴圈完成一輪之後,把min和i位置的元素交換位置
//效果是min依次被放在了0,1,2...
if(i != min)
}return arr;
}
經典排序演算法之選擇排序
來自 演算法 中關於選擇排序的描述 首先找到陣列中最小的元素,將它和陣列的第乙個元素交換位置。其次,在剩下的元素中找到最小的元素,將它與陣列的第二個元素交換位置。如此往復,直到整個陣列排序。這就是選擇排序。話不多說,上 片段吧。public static void selectionsort int...
排序演算法 經典排序演算法之選擇排序
演算法的基本思想,是從無序中選擇最小的元素,然後交換。1 從陣列的第乙個元素開始,將待排序陣列分為有序和無序兩個區間。2 從無序陣列中選取最小的元素和有序陣列的最後乙個元素交換。3 重複第2步,直到無序陣列沒有元素為止。時間複雜度為o n n 空間複雜度為o 1 選擇排序是給每個位置選擇當前元素最小...
經典演算法之選擇排序(直接選擇 堆排序)
注 文章 實驗樓 這一章我們來講解選擇排序,首先我們來講解其中最簡單的簡單選擇排序。簡單選擇排序的基本思想是通過n 1次資料元素的比較,從n i 1個記錄中選擇最小的資料,並與第i個資料進行交換,如下圖所示。簡單選擇排序的 實現 include include int n 選擇排序 void sel...