簡單選擇排序

2021-08-07 13:35:43 字數 922 閱讀 1111

選擇排序—簡單選擇排序(****** selection sort)

基本思想:

在要排序的一組數中,選出最小(或者最大)的乙個數與第1個位置的數交換;然後在剩下的數當中再找最小(或者最大)的與第2個位置的數交換,依次類推,直到第n-1個元素(倒數第二個數)和第n個元素(最後乙個數)比較為止。

簡單選擇排序的示例:

操作方法:

第一趟,從n 個記錄中找出關鍵碼最小的記錄與第乙個記錄交換;

第二趟,從第二個記錄開始的n-1 個記錄中再選出關鍵碼最小的記錄與第二個記錄交換;

以此類推…..

第i 趟,則從第i 個記錄開始的n-i+1 個記錄中選出關鍵碼最小的記錄與第i 個記錄交換,

直到整個序列按關鍵碼有序。

#include

#include

using

namespace

std;

void print(int a,int n,int i)

}int selectmin(int a,int n,int i)

return k;

}void selectsort(int a,int n)

print(a,n,i);

}} int main();

selectsort(a,8);

}

第1趟:1 7 6 5 4 3 2 9 

第2趟:1 2 6 5 4 3 7 9

第3趟:1 2 3 5 4 6 7 9

第4趟:1 2 3 4 5 6 7 9

第5趟:1 2 3 4 5 6 7 9

第6趟:1 2 3 4 5 6 7 9

第7趟:1 2 3 4 5 6 7 9

第8趟:1 2 3 4 5 6 7 9

簡單選擇排序 簡單選擇排序詳解

n個記錄的檔案的直接選擇排序可經過n 1趟直接選擇排序得到有序結果 初始狀態 無序區為r 1.n 有序區為空。第1趟排序 在無序區r 1.n 中選出關鍵字最小的記錄r k 將它與無序區的第1個記錄r 1 交換,使r 1.1 和r 2.n 分別變為記錄個數增加1個的新有序區和記錄個數減少1個的新無序區...

選擇排序 簡單選擇排序

在要排序的一組數中,選出最小 或者最大 的乙個數與第1個位置的數交換 然後在剩下的數當中再找最小 或者最大 的與第2個位置的數交換,依次類推,直到第n 1個元素 倒數第二個數 和第n個元素 最後乙個數 比較為止。第一趟,從n個記錄中找出關鍵碼最小的記錄與第乙個記錄交換 第二趟,從第二個記錄開始的n ...

選擇排序 簡單選擇排序

1.選擇排序 簡單選擇排序,堆排序 與交換排序 氣泡排序,快速排序 的區別 每次比較如果發現較小的元素在後面,就交換兩個相鄰的元素。而選擇排序演算法的改進在於 先並不急於調換位置,先從a 1 開始逐個檢查,看哪個數最小就記下該數所在的位置p,等一躺掃瞄完畢,再把a p 和a 1 對調,這時a 1 到...