基本思想
在要排序的一組數中,選出最小(或者最大)的
乙個數與第1個位置的數交換;
然後在剩下的數當中再找最小(或者最大)的與第2個位置的數交換,依次類推,直到第n-1個元素(倒數第二個數)和第n個元素(最後
乙個數)比較為止。
簡單選擇排序的示例:
操作方法:
第一趟,從n 個記錄中找出關鍵碼最小的記錄與第乙個記錄交換;
第二趟,從第二個記錄開始的n-1 個記錄中再選出關鍵碼最小的記錄與第二個記錄交換;
以此類推.....
第i 趟,則從第i 個記錄開始的n-i+1 個記錄中選出關鍵碼最小的記錄與第i 個記錄交換,
直到整個序列按關鍵碼有序。
演算法實現:
void print(int a, int n ,int i)
return k;
}
/**
* 選擇排序
* */
void selectsort(int a, int n)
print(a, n , i);
} } int main();
cout<
for(int j= 0; j<8; j++)
if (r[j]< r[min])
}
//該交換操作還可分情況討論以提高效率
tmp = r[i-1]; r[i-1] = r[min]; r[min] = tmp;
tmp = r[n-i]; r[n-i] = r[max]; r[max] = tmp;
}
}
八大排序演算法 簡單選擇排序
通過下標位置減少交換次數,在要排序的一組數中,選出最小 或者最大 的乙個數與第1個位置的數交換 然後在剩下的數當中再找最小 或者最大 的與第2個位置的數交換,依次類推,直到第n 1個元素 倒數第二個數 和第n個元素 最後乙個數 比較為止。include 簡單選擇排序 void selectsort ...
八大排序演算法的python實現(八)簡單選擇排序
coding utf 8 author 徐卜靈 l 6,3,2,32,5,4 defselect sort l for i in range 0,len l for j in range i,len l if l i l j 打擂台的形式 temp l i l i l j l j temp l i ...
八大排序 選擇排序
n個資料的檔案可經過n 1趟直接選擇排序得到有序結果。初始狀態 無序區 r 1.n 有序區為空。第一趟排序 在無序區r 1.n 選出下標最小的記錄r 1 通過比較獲得無序區中最小的,將他與無序區的第乙個記錄r 1 交換,使得r 1.1 和r 2.n 成為新的有序區域,和新的無序區域。第i趟排序 第i...