直接選擇排序

2021-09-30 07:44:50 字數 351 閱讀 2092

將待排序列看成左右兩個子串行,左子串行是有序的,右子串行是無序的,並且左序列中最大關鍵字(在左序列的最右邊)小於右序列的最小關鍵字。排序的過程為:定義某個變數i指向最大關鍵字的下乙個位置,在右序列中找到最小關鍵字k,將i和k交換。

**如下:

/* 直接選擇排序 */

voidstraightselectionsort(int a, int n)

{ int i, j, k, tmp;

for (i=0; i

直接選擇排序的時間複雜度為o(n2),空間複雜度為o(1)。當待排序列為正序時,不發生交換;當為逆序時,發生(n-1)次交換,移動次數為3(n-1)。

選擇排序 直接選擇排序

演算法思想 在每一趟的排序中,從待排序列中選出關鍵字最小或者最大的元素放在其最終的位置上 過程分析 在第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 放在無序區的最左邊的位...

選擇排序 直接選擇排序

直接選擇排序 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 ...