选择排序是一种简单直观的排序算法。它的工作原理很容易理解:初始时在序列中找到最小(大)元素,放到序列的起始位置作为已排序序列;然后,再从剩余未排序元素中继续寻找最小(大)元素,放到已排序序列的末尾。以此类推,直到所有元素均排序完毕
可以使用for循环完成操作
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int MAXN = 10005;
const int INF = 0x3f3f3f3f;
int num[MAXN];
int arr[MAXN];
bool flag[MAXN];
void P(int n)
{
for(int i = 1; i <= n; i++)
{
int MIN = INF;
int temp = 0;
for(int j = 1; j <= n; j++)
{
if(num[j] < MIN && flag[j] == false)
{
temp = j;
MIN = num[j];
}
}
arr[i] = num[temp];
flag[temp] = true;
}
for(int i = 1; i <= n; i++)
num[i] = arr[i];
}
int main()
{
int n;
while(~scanf("%d", &n))
{
memset(num, 0, sizeof(num));
memset(flag, false, sizeof(flag));
for(int i = 1; i <= n; i++)
scanf("%d", &num[i]);
P(n);
for(int i = 1; i <= n; i++)
printf("%d ", num[i]);
printf("\n");
}
return 0;
}