內部排序之簡單選擇排序

2021-08-17 01:58:52 字數 547 閱讀 4270

簡單選擇排序是最基本的一種選擇排序,這種選擇排序嚴格貼合選擇排序的基本思想。與直接插入排序類似,簡單選擇排序也可以將序列視為兩部分,只是直接插入排序初始的有序序列有乙個元素,簡單選擇排序初始的整個序列都視為待排序序列,有序序列為空。

若要使用簡單選擇排序使陣列arr[n]成為乙個降序序列,使用i來記錄當前需要選擇的最佳的位置;使用max記錄當前已參與比較的元素中最大值對應的下標,其操作過程如下:

(1)在第m輪比較中,i=m-1,使max=i,即記錄當前需要選擇最大元素的位置,同時初始化j=i+1;

(2)比較arr[max]與arr[j]:

若arr[max]>arr[j],不能進行複製操作;

若arr[max]

void selectsort(int* arr,int n)

if(i!=max)

swap(&arr[i]=&arr[max])

}}

簡單選擇排序演算法的時間複雜度為o(n^2),該演算法在進行排序的時候可能會改變兩個鍵值相同的記錄的先後次序,所以該演算法不是乙個穩定的演算法。

內部排序 簡單選擇排序

n 個記錄進行簡單選擇排序的基本方法是 通過n i 1 i n 在次關鍵字之間比較,從n i 1個記錄中選出關鍵字最小的記錄,並和第i個記錄進行交換,當i等於n時偶有記錄有序排列。簡單選擇排序是一種不穩定的排序方法,時間複雜度為o n2 在排序過程中僅需要乙個元素作為輔助空間用於陣列元素值的交換,空...

內部排序之選擇排序 簡單選擇排序和堆排序

1.簡單選擇排序 基本思想 給定待排陣列,共n個元素,依次比較n個元素,選擇出最大值 或最小值 與a 0 元素替換,然後比較剩下的n 1個元素,同樣得到最大值最大值 或最小值 與a 1 元素替換,以此類推,重複進行。直到n 1 此時 陣列順序已排好 降序或公升序 實現 簡單選擇排序 基本思想 在要排...

選擇排序之簡單選擇排序

選擇排序是幾大排序演算法中的一種,選擇排序的思想如下 每趟從待排序的記錄序列中選擇關鍵字最小的記錄放置到已排序表的最前位置,直到全部排完。選擇排序大概有兩種,今天我們說其中一種 簡單選擇排序。1 基本思想 在要排序的一組數中,選出最小的乙個數與第乙個位置的數交換 然後在剩下的數當中再找最小的與第二個...