選擇排序 C語言實現

2021-09-02 23:12:00 字數 808 閱讀 7876

選擇排序是一種簡單直觀的排序演算法,它與氣泡排序很相似,都是比較n - 1輪,每輪 n-1-i 次每輪找出乙個最大/ 最小值。只不過冒泡放最後,選擇排序放最左。

(本文以從小到大排序為例)

與冒泡的比較:冒泡是將相鄰的數逐個進行比較:(從小到大為例)只要前面的比後面的大,就互換倆數,直到最後將最大的數「浮到」最末尾,如此迴圈。

而選擇排序,先儲存第乙個元素的下標,之後所有元素與第乙個比較,如果遇到最小的,則記錄更小那個數的下標。直到最後將最小數的下標找出來,然後再此最小數放最左,即與下標0的元素互換位置。

先判斷最小的數下標是不是0,若不是則說明第乙個元素不是最小的,則此數與下標0的元素互換位置,一輪下來,最小的數放最左邊。找到第二小、第三小、第... ...。

bb兩小時,coding2分鐘。。。

#include int main()

; int n = sizeof(a) / sizeof(a[0]);

for(i=0; ia[j] )

}if( minindex != i) /*找到最小數後,若它的下標不是i,

則說明它不在最左,需要互換*/

}printf("選擇排序最終結果為:\n");

for(i=0; i不同點:氣泡排序只要碰到前面比後面大,就交換;

而選擇排序一輪只交換一次,且若本輪最小的就是最左那個,就不用交換。

所以該方法更符合人類思維

氣泡排序

選擇排序

插入排序

快速排序

選擇排序,C語言實現

下面我們來介紹一下選擇排序。選擇排序的思想是每次都從剩餘的元素中找到最小值,然後把這個最小值放到已經有序的部分元素的後面。這個過程的時間複雜度為o n 一共需要找n個元素,所以總的時間複雜度是o n2 其中,尋找最小值的 如下 int minindex i int min arr i for int...

排序 1 選擇排序 C語言實現

選擇排序的基本思想 選擇排序 selection sort 是一種簡單直觀的排序演算法。它的工作原理如下。首先在未排序序列中找到最小 大 元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小 大 元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。我的通俗解釋 第一遍...

排序法值選擇排序(C語言實現)

今天我們來說一下排序法,排序法有分好多種,有比較排序,又有非比較排序。今天我們來說一下比較排序中的選擇排序。所謂選擇,以公升序排序為例,就是將一組資料種最小的選擇出來,放到這組資料的最前面,然後再從剩餘的資料中在選擇乙個最小的 全部次小的 選擇出來,放到這組資料第二個位置。以此類推,直到排序完成。這...