基本概念:
選擇排序(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挪動到第二個...