選擇排序- 維基百科,自由的百科全書
文章推薦指數: 80 %
選擇排序(Selection sort)是一種簡單直觀的排序演算法。
它的工作原理如下。
首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然後,再從剩餘未排序 ...
選擇排序
維基百科,自由的百科全書
跳至導覽
跳至搜尋
此條目沒有列出任何參考或來源。
(2019年12月16日)維基百科所有的內容都應該可供查證。
請協助補充可靠來源以改善這篇條目。
無法查證的內容可能會因為異議提出而移除。
選擇排序概況類別排序演算法資料結構數組複雜度平均時間複雜度О(n²)最壞時間複雜度О(n²)最佳時間複雜度О(n²)空間複雜度總共О(n),需要輔助空間O(1)最佳解偶爾出現相關變數的定義
選擇排序的範例動畫。
紅色表示當前最小值,黃色表示已排序序列,藍色表示當前位置。
選擇排序(Selectionsort)是一種簡單直觀的排序演算法。
它的工作原理如下。
首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小(大)元素,然後放到已排序序列的末尾。
以此類推,直到所有元素均排序完畢。
選擇排序的主要優點與資料移動有關。
如果某個元素位於正確的最終位置上,則它不會被移動。
選擇排序每次交換一對元素,它們當中至少有一個將被移到其最終位置上,因此對
n
{\displaystylen}
個元素的表進行排序總共進行至多
(
n
−
1
)
{\displaystyle(n-1)}
次交換。
在所有的完全依靠交換去移動元素的排序方法中,選擇排序屬於非常好的一種。
目次
1實作範例
1.1C語言
1.2Java
2複雜度分析
3外部連結
實作範例[編輯]
C語言[編輯]
voidselection_sort(inta[],intlen)
{
inti,j,temp;
for(i=0;i
延伸文章資訊
- 1[演算法] 選擇排序法(Selection Sort)
選擇排序作法:. 將資料分成已排序、未排序兩部份; 依序由未排序中找最小值(or 最大值),加入到已排序部份的末端. 時間複雜度(Time Complexity).
- 2【Day22】[演算法]-選擇排序法Selection Sort - iT 邦幫忙
選擇排序法(Selection Sort),原理是反覆從未排序數列中找出最小值,將它與左邊的數做交換。可以有兩種方式排序,一為由大到小排序時,將最小值放到 ...
- 3選擇排序- 維基百科,自由的百科全書
選擇排序(Selection sort)是一種簡單直觀的排序演算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然後,再從剩餘未排序 ...
- 4選擇排序法| C++與演算法
選擇排序法(Selection Sort). 生活中經常要用到排序、分類,例如:. 將成績由高到低排序; 將喜好程度由高到低排序; 將可回收的垃圾分類; 將筆電的價錢排序 .
- 5C/C++ selection sort 選擇排序法
本篇ShengYu 介紹C/C++ 中的選擇排序法selection sort,並且由C/C++ 來實作選擇排序法selection sort。 如果不想自己刻一個排序法可以使用現成C 提供 ...