C語言 選擇排序

2021-07-01 21:58:22 字數 889 閱讀 9492

選擇排序(selection sort)是一種簡單直觀的

排序演算法

。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小(大)元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。

選擇排序的主要優點與資料移動有關。如果某個元素位於正確的最終位置上,則它不會被移動。選擇排序每次交換一對元素,它們當中至少有乙個將被移到其最終位置上,因此對n個元素的表進行排序總共進行至多n-1次交換。在所有的完全依靠交換去移動元素的排序方法中,選擇排序屬於非常好的一種。

**如下:

#include int main()

; int i = 0;

int j = 0;

int k;

int tmp;

int len = sizeof(arr)/sizeof(arr[0]);

for(i = 0;i

指標訪問:

#include int main()

; int i = 0;

int j = 0;

int k;

int tmp;

int len = sizeof(arr)/sizeof(arr[0]);

for(i = 0;i

執行結果如下所示:

比較次數

原地操作幾乎是選擇排序的唯一優點,當方度(space complexity)要求較高時,可以考慮選擇排序;實際適用的場合非常罕見。

c語言選擇排序

選擇排序 第一層迴圈從陣列第乙個元素到倒數第二個元素結束 即比較n 1趟 第二層迴圈元素項比第一層的基礎上增加且小於n 選擇排序是比較後前面固定,如果後面的元素比前面的元素大,就將後面的元素 賦給前面,大迴圈沒迴圈1次,就確定了陣列第乙個元素是最小的 include main for i 0 i 8...

c語言 選擇排序

選擇排序是一種基礎演算法,其方法也很簡單。核心思維就是選擇二字,比如在一組給定10個數字的陣列中。第一次選擇10個數字中最大的數字和最後乙個數字進行交換。第二次選擇前9個數字中最大的數字和倒數第二個數字進行交換。第三次選擇前8個數字中最大的數字和倒數第三個數字進行交換。以此類推,最後完成從小到大的排...

C語言 選擇排序

選擇排序 選擇排序設定乙個起始位置,將其後面未排序的元素進行比較,每選出乙個最小 大 的數字將其放在起始位置並將起始位置向後移動一位,直到起始位置移到最後一位。此時便完成了排序。例如 有陣列 12 8 3 起始位置為第乙個數字 第一次排序後 8 12 3 第二次 3 12 8 起始位置後的所有元素已...