資料結構 選擇排序(一) 直接選擇排序

2021-09-12 10:31:15 字數 993 閱讀 2301

一、選擇排序演算法介紹

選擇排序的基本思想是:每一趟在n-i+1(i=1,2,…n-1)個記錄中選取關鍵字最小的記錄作為有序序列中第i個記錄。基於此思想的演算法主要有簡單選擇排序、樹型選擇排序和堆排序。 

今天我們解析一遍較簡單的直接選擇排序,初步掌握選擇排序演算法的基本思想。

簡單選擇排序的基本思想:第1趟,在待排序記錄r[1]~r[n]中選出最小的記錄,將它與r[1]交換;第2趟,在待排序記錄r[2]~r[n]中選出最小的記錄,將它與r[2]交換;以此類推,第i趟在待排序記錄r[i]~r[n]中選出最小的記錄,將它與r[i]交換,使有序序列不斷增長直到全部排序完畢。

二、直接選擇排序演算法描述及例項演示

n個記錄的直接選擇排序可經過n-1趟直接選擇排序得到有序結果。具體演算法描述如下:

例項1:以乙個陣列a[7]=為例,直接選擇排序過程如下

三、**演示

#include //選擇排序

void selectionsort(int* arr,int len)

{ int i,j;

for(i=0;i程式結果截圖

四、演算法分析

選擇排序的交換操作介於0和(n-1)次之間。選擇排序的比較操作為n*(n-1)/2次之間。選擇排序的賦值操作介於0和3*(n-1)次之間。

最佳情況:t(n) = o(n^2)  

最差情況:t(n) = o(n^2)  

平均情況:t(n) = o(n^2)

穩定性:不穩定

資料結構 排序 選擇排序 直接選擇排序法

直接選擇排序 straight selection sort 直接選擇排序的基本思想 n個記錄的檔案的直接選擇排序可經過n 1趟直接選擇排序得到有序結果 初始狀態 無序區為r 1.n 有序區為空。第1趟排序 在無序區r 1.n 中選出關鍵字最小的記錄r k 將它與無序區的第1個記錄r 1 交換,使r...

資料結構 選擇排序(直接選擇 堆排序)

1 選擇排序的基本思想 每一次從待排序的資料元素中選出最小 或最大 的乙個元素,存放在序列的起始位置 或末尾 直到全部待排序的資料元素排完。選擇排序可分為直接選擇排序 堆排序。2 直接選擇排序 2.1 演算法步驟 1.在元素集合array i array n 1 中選擇關鍵碼最大 小 的資料元素 2...

資料結構 直接選擇排序

直接選擇排序和直接插入排序有點類似,因為在整個排序過程中都將資料分為有序區和無序區,不同的是直接插入排序是將無序區的第乙個元素直接插入到有序區中合適位置以形成乙個更大的有序區,剛開始認為有序區的長度為1,而直接選擇排序是從無序區選乙個最小的元素直接放到有序區的最後,剛開始認為它的有序區長度為0。設待...