第七周--简单选择排序

题目描述

读入N个整数,利用简单选择排序法对这些数排序,输出排序后的N个数,两个数之间用空格间隔。

这里排序指的是升序。

输入格式

两行,第一行一个正整数N,表示待排序的数的个数。

第二行为N个整数。

输出格式

一行,排序后的N个数。

输入输出样例

输入
5
4 2 4 5 1
输出 
1 2 4 4 5

简单选择排序:第i趟在n-i+1个记录中取关键码最小的记录作为有序序列中的第i个记录

#include<bits/stdc++.h>
using namespace std;
void selectSort(int r[],int n)
{
int i;
int tmp;
int j;
int index;//用index记录在一次比较中关键码最小的位置
for(i=1;i<n;i++)
{
index=i;
for(j=i+1;j<=n;j++)
if(r[j]<r[index]) index=j;
if(index!=i)//确定关键码的最终位置将i与index关键码交换
{
tmp=r[i];
r[i]=r[index];
r[index]=tmp;
}
}
}
int main()
{
int n,a[100001];
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
selectSort(a,n);
for(int i=1;i<=n;i++)
{
cout<<a[i]<<" ";
}
return 0;
}

posted @ 2023-04-19 14:40  小白船、  阅读(84)  评论(0)    收藏  举报