選擇排序詳解

2021-07-22 09:49:20 字數 1170 閱讀 1156

基本概念:

選擇排序(selection sort)是這樣的:首先,找到陣列中最小的那個元素,其次,將它和陣列的第乙個元素交換位置(如果第乙個元素就是最小元素那麼它就和自己交換)。再次,在剩下的元素中找到最小的元素,將它與陣列的第二個元素交換位置。如此往復,直到將整個陣列排序。這種方法叫做選擇排序,因為它在不斷地選擇剩餘元素之中的最小值。

選擇排序的

時間複雜度為

o(n²),時間複雜度可被稱為是漸近的,它考察當輸入值大小趨近無窮時的情況,不能簡單的用來計算精確值。

需要注意的是選擇排序和氣泡排序是兩個不同的概念,網上很多文章是混淆了這兩種演算法。

過程如圖示:

簡單例子:

#include void selection_sort(int arr, int size)

}temp = arr[i];

arr[i] = arr[min];

arr[min] = temp;

/* 每輪內迴圈後輸出陣列的現狀 */

int k;

printf("the %d for(): ", i);

for (k = 0; k < size; ++k)

printf("\n");

/* 已經不需要交換 */

if (flag)

return ;

}}int main()

; int size = sizeof(arr) / sizeof(int);

//sort

selection_sort(arr, size);

//print

int i = 0;

for (i; i < size; ++i)

return 0;

}

編譯執行:

原文出自:

end;

選擇排序詳解

目錄 一 基本思想 二 過程示意圖 三 實現過程 四 複雜度 選擇排序 selection sort 是一種簡單直觀的排序演算法。它的工作原理是每一次從待排序的資料中選出最小 或最大 的乙個元素,存放在序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小 大 元素,然後放到已排序序列的末尾。以此類...

選擇排序詳解

基本介紹 選擇式排序屬於內部排序法,是從預排序的資料中,按指定的規則選出某一元素,再依規定交換位置後達到排序的目的。思想 選擇排序 select sorting 也是一種簡單的排序方法。它的基本思想是 第一次從arr 0 arr n 1 中選取最小值,與arr 0 交換,第二次從arr 1 arr ...

選擇排序演算法(排序詳解)

選擇排序 selection sort 是一種簡單直觀的排序演算法。它的工作原理是每一次從待排序的資料元素中選出最小 或最大 的乙個元素,存放在序列的起始位置,直到全部待排序的資料元素排完。選擇排序是不穩定的排序方法 比如序列 5,5,3 第一次就將第乙個 5 與 3 交換,導致第乙個5挪動到第二個...