選擇排序演算法之C 實現

2021-06-29 00:57:51 字數 1060 閱讀 5996

選擇排序演算法, 和上篇講的冒泡演算法很類似.很容易混淆理解.所以這篇緊接著就講選擇排序演算法.上篇講過,

之所以叫氣泡排序, 是因為從第乙個數開始和自己相鄰的元素做兩兩比較,哪個最大就後置,然後這樣第二個元素就比第乙個元素大,用同樣的方法就保證了第三個元素又比第二個元素要大.不斷重複這個過程, 最後乙個元素肯定是最大的.這樣,整個排序是兩兩比較,找出最大的,從大到小找出所有元素去排列,就就像泡泡一樣乙個乙個的冒出來.這就是氣泡排序.

而選擇排序,和上面有一點類似,都是選出最值,但不是選出最大那個元素,而是選出最小的那個元素,並且方法並不是兩兩比較,而是從首位的元素開始和整個佇列中的元素去逐個比較,選出最小的那個元素放在首位;接著又從第二個元素開始,和後面的元素又去逐個比較,找出第二小的元素放在第二位... 重複這個過程,最後的結果是,整個排序佇列是從小到大的.這就是和氣泡排序的幾個區別了. 每次都選擇待排序佇列中最小的那個元素放在待排序佇列的首位,這就是選擇排序的原理.

二維遍歷, 自然複雜度就是o(n^2).

掌握了這個思想,我們就能去實現它.很簡單吧 當做練習吧~ 下面用c++實現一次:

#include using namespace std;  

void print(int* datas, int length)

cout << endl;

}

/*** c++實現選擇排序

**/void selectsort()

; int index; //記錄最小數的位置

int ele; //記錄每次遍歷找出的最小值

C 實現排序演算法之選擇排序

c 實現排序演算法之選擇排序 選擇排序 selection sort 是一種簡單直觀的排序演算法。它的工作原理是 第一次從待排序的資料元素中選出最小 或最大 的乙個元素,存放在序列的起始位置,然後再從剩餘的未排序元素中尋找到最小 大 元素,然後放到已排序的序列的末尾。以此類推,直到全部待排序的資料元...

排序演算法C 實現之選擇排序詳解

將無序陣列變為有序陣列 通過迴圈,每次選出在當前的剩餘元素中最小的元素,使得這些選出的元素構成有序陣列 using system namespace selectionsort program ps new program ps.selectsort a console.writeline 排序結果...

C 實現選擇排序演算法

選擇排序演算法的基本思想 每一輪找到最小 公升序 的元素放在當前序列的最前面。特點 先找到最小元素,記錄下標,最後交換。時間複雜度 o n 2 以下為實現 include using namespace std void sort int arr,int length 傳入陣列首位址和陣列長度 if...