C 實現直接選擇排序

2021-10-17 12:18:21 字數 1466 閱讀 9801

直接選擇排序的特性總結:

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

這裡我們將選擇排序更有效一點,一次遍歷找到最小,最大的值分別放在begin,end位置

#include

using

namespace std;

#include

void

selectsort

(vector<

int>

& a,

int n)

swap

(a[begin]

,a[mini]);

if(begin==maxi)

//注意這裡判斷條件

swap

(a[end]

,a[maxi]);

++begin;

--end;}}

intmain()

selectsort

(a, a.

size()

);for(

auto e : a)

return0;

}

結果:

}結果:

直接選擇排序思考非常好理解,但是效率不是很好。實際中很少使用。

時間複雜度:o(n^2)

空間複雜度:o(1)

穩定性:不穩定

直接選擇排序java實現

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

選擇排序 直接選擇排序

演算法思想 在每一趟的排序中,從待排序列中選出關鍵字最小或者最大的元素放在其最終的位置上 過程分析 在第i趟直接排序中,通過n i次關鍵字的比較,從n i 1個元素中選出關鍵字最小的元素 與第i個元素進行交換。經過n 1趟比較,直到表有序為止 效能分析 時間複雜度o n 2 include defi...

選擇排序 直接選擇排序

直接選擇排序也成為簡單選擇排序。對於乙個待排序數列,每次從無序區選擇乙個最小的元素,放入有序區 初始時有序區為空 直到無序區元素只有乙個 即整個數列的最大值 具體操作 第i趟排序開始,數列分為有序區a 0,i 1 和無序區a i,n 1 從無序區中選擇最小元素a k 將a k 放在無序區的最左邊的位...