1、原理
選擇排序的第i趟排序,從第i個記錄開始掃描序列,在n-i+1(1≤i≤n-1)個記錄中找到最小的記錄,並和第i個記錄交換作爲有序序列的第i個記錄。
2、代碼實現
#include<iostream>
using namespace std;
void select_sort(int data[], int n)
{
for (int i = 0; i <= n - 2; i++) //對n個記錄進行n-1趟簡單選擇排序
{
int min_index = i;
for (int j = i + 1; j <= n-1; j++) //在無序區中找最小記錄
if (data[j] < data[min_index])
min_index = j;
if (i != min_index) //若最小記錄不在最終位置則交換
swap(data[i], data[min_index]);
}
}
int main(int argc, char *argv[])
{
int data[20] = {1, 7, 3, 50, 43, 34, 78, 23, 67, 90};
select_sort(data, 10);
int i = 0;
while (i < 10)
{
cout << data[i] << ' ';
++i;
}
system("pause");
return 0;
}