選擇排序 直接選擇排序

2021-09-14 04:39:17 字數 591 閱讀 2775

直接選擇排序也成為簡單選擇排序。

對於乙個待排序數列,每次從無序區選擇乙個最小的元素,放入有序區(初始時有序區為空),直到無序區元素只有乙個(即整個數列的最大值)。

具體操作:第i趟排序開始,數列分為有序區a[0,i-1]和無序區a[i,n-1]。從無序區中選擇最小元素a[k],將a[k]放在無序區的最左邊的位置:a[k]a[i]互換位置。直到無序區元素為乙個。

#include using namespace std;

void selectsort(int a,int n)^(n-i-1)=\frac=o(n^2)" class="mathcode" src=""/>

對於元素的移動次數,如果初始數列為正序,則移動次數為0;如果初始為反序,每趟均需執行交換操作,總共需要移動3(n-1)。

所以平均時間複雜度為

在直接排序演算法中只用到i,j,k,tmp4個變數,與問題規模n 無關,所以空間複雜度為o(1)

直接排序演算法是乙個不穩定的排序方法,例如,,第一趟選擇最小元素1,並交換,兩個5的相對位置發生了改變。

選擇排序 直接選擇排序

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

選擇排序 直接選擇排序

直接選擇排序 straight select sorting 也是一種簡單的排序方法,它的基本思想是 第一次從r 0 r n 1 中選取最小值,與r 0 交換,第二次從r r n 1 中選取最小值,與r 1 交換,第i次從r i 1 r n 1 中選取最小值,與r i 1 交換,第n 1次從r n ...

選擇排序 直接選擇排序

直接選擇排序 這個系列是回顧之前所學,是用python商量著完成的。路過的大佬就當看個樂,實現演算法的方式不一,也有討巧的做法。我只講講我的思路,希望大家瀏覽的時候能多多提建議,共同學習共同進步。選擇排序之直接選擇排序的基本思路 將序列中最小的數,拿出來與第乙個數交換,再到剩下的數中選出最小的數出來...