思路
選擇排序是每一趟從待排序的元素中選出關(guān)鍵字最小的元素,放在已排序好的序列的最后聋迎。
選擇排序適合從大量的元素中選擇一部分排序元素脂矫,例如從10000個(gè)元素中選擇出大小為前10 的元素就適合用選擇排序。
實(shí)現(xiàn)
void selectSort(int R[], int n)
{
int i, j, k;
for (i = 0; i < n - 1; i++)
{
k = i;
for (j = i + 1; j < n; j++)//從當(dāng)前無(wú)序區(qū)選出最小的
{
if (R[j] < R[k])
{
k = j;//k記下位置
}
}
if (k != i)
{
swap(R[i], R[k]);//交換
}
}
}
測(cè)試
int main()
{
int R[] = { 4,8,9,6,2,1,3,7 };
selectSort(R, 8);
for (int i = 0; i < 8; i++)
{
cout << R[i] << " ";
}
return 0;
}
完整代碼
#include <iostream>
using namespace std;
void selectSort(int R[], int n)
{
int i, j, k;
for (i = 0; i < n - 1; i++)
{
k = i;
for (j = i + 1; j < n; j++)//從當(dāng)前無(wú)序區(qū)選出最小的
{
if (R[j] < R[k])
{
k = j;//k記下位置
}
}
if (k != i)
{
swap(R[i], R[k]);//交換
}
}
}
int main()
{
int R[] = { 4,8,9,6,2,1,3,7 };
selectSort(R, 8);
for (int i = 0; i < 8; i++)
{
cout << R[i] << " ";
}
return 0;
}