选择排序
选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。时间复杂度为O(n^2)。
C++代码如下
#include<iostream>
using namespace std;
int main()
{
int n = 10;
cout << "please input a number" << endl;
cin >> n;
int* a = new int[n];
int num;
cout << "please input " << n << "numbers" << endl;
for (int i = 0; i < n; ++i)
{
cin >> num;
a[i] = num;
}//构建一个数组
for (int i = 0; i < n; ++i)
{
int k = i;//设置一个临时变量k,可以将k理解为我们每次寻找最小元素的对应下标(位置)
for (int j = i+1; j < n; ++j)
{
if (a[k] >= a[j])
{
k = j;//保存每次循环后最小元素的下标
}
}
int temp;
temp = a[i];
a[i] = a[k];
a[k] = temp;
}
for (int i = 0; i < n; ++i)
{
cout << a[i] << " ";
}
return 0;
}