Select_Sort(选择排序)
一、算法思路:
第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,
然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。
以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。
二、时间复杂度:O(n²)
三、稳定性:不稳定
四、代码段:
#include<iostream>
#include<time.h>
#include<iomanip>
using namespace std;
const int N = 10;
int main()
{
int a[N], i, j, min, b;
srand(time(NULL));
for (i = 0; i<N; i++)
a[i] = rand() % 100;
for (i = 0; i<N; i++)
cout << setw(3) << a[i];
cout << endl;
for (i = 0; i<N - 1; i++)
{
min = i;
for (j = i + 1; j<N; j++)
{
if (a[min]>a[j])
min = j;
}
if (i != min)
{
b = a[min];
a[min] = a[i];
a[i] = b;
}
}
for (i = 0; i<N; i++)
cout << setw(3) << a[i];
cout << endl;
}