簡單選擇排序選擇排序的基本思想是:從待排序的元素序列中選擇關鍵字最小或最大的元素,將其放在已排序元素序列的最前面或最後面,其餘的元素構成新的待排序元素序列,並從待排序元素序列中選擇關鍵字最小的元素,將其放在已排序元素序列的最前面或最後面。依次類推,直到待排序元素序列中沒有待排序的元素,選擇排序結束。本節的主要學習內容包括兩種常用的選擇排序:簡單選擇排序和堆排序。
12.3.1 簡單選擇排序
簡單選擇排序的基本思想是:假設待排序的元素序列有n個,第一趟排序經過n-1次比較,從n個元素序列中選擇關鍵字最小的元素,並將其放在元素序列的最前面即第乙個位置。第二趟排序從剩餘的n-1個元素中,經過n-2次比較選擇關鍵字最小的元素,將其放在第二個位置。依次類推,直到沒有待比較的元素,簡單選擇排序演算法結束。
簡單選擇排序的演算法描述如下。
void selectsort(sqlist *l,int n)
/*簡單選擇排序*/
int i,j,k;
datatype t;
/*將第i個元素的關鍵字與後面[i+1...n]個元素的關鍵字比較,將關鍵字最小的的元素放在第i個位置*/
for(i=1;i<=n-1;i++)
j=i;
for(k=i+1;k<=n;k++) /*關鍵字最小的元素的序號為j*/
if(l->data[k].keydata[j].key)
j=k;
if(j!=i) /*如果序號i不等於j,則需要將序號i和序號j的元素交換*/
t=l->data[i];
l->data[i]=l->data[j];
l->data[j]=t;
簡單選擇排序 零基礎學資料結構
簡單選擇排序選擇排序的基本思想是 從待排序的元素序列中選擇關鍵字最小或最大的元素,將其放在已排序元素序列的最前面或最後面,其餘的元素構成新的待排序元素序列,並從待排序元素序列中選擇關鍵字最小的元素,將其放在已排序元素序列的最前面或最後面。依次類推,直到待排序元素序列中沒有待排序的元素,選擇排序結束。...
簡單選擇排序 零基礎學資料結構
簡單選擇排序選擇排序的基本思想是 從待排序的元素序列中選擇關鍵字最小或最大的元素,將其放在已排序元素序列的最前面或最後面,其餘的元素構成新的待排序元素序列,並從待排序元素序列中選擇關鍵字最小的元素,將其放在已排序元素序列的最前面或最後面。依次類推,直到待排序元素序列中沒有待排序的元素,選擇排序結束。...
資料結構 簡單選擇排序
include include include include include include define maxsize 100 define elemtype int define status int using namespace std 順序表資料結構 typedef struct sq...