/*
选择排序(2)
有n个整数,请使用选择排序算法对其按从小到大排序,输出第m趟排序的结果。
Input
测试数据有多组,每组的第一行是两个正整数n和m
其中2<=n<=20,0<m<=n-1,第二行是n个整数,所有数据之间均用空格分隔。
Output
对于每组测试数据,输出单独的一行,对这n个整数进行m趟选择排序后的结果。数据之间用一个空格分隔。
*/
//
#include<stdio.h>
int main()
{
int in[111];
int n,m,i,j,pos,tt,cnt;
while( ~scanf("%d%d",&n,&m) )
{ //
for( i=0;i<n;i++ ) scanf("%d",&in[i]);
cnt=0;
for( i=0;i<n;i++ )
{
if( cnt>=m ) break;
pos=i; //
for( j=i+1;j<n;j++ )
if( in[pos]>in[j] ) pos=j;
cnt++; // cnt++ 放在if里面会陷入死循环 eg. 12345
tt=in[pos]; in[pos]=in[i]; in[i]=tt;
}
for( i=0;i<n;i++ )
{
if( i ) printf(" ");
printf("%d",in[i]);
}
printf("\n");
}
return 0;
}
选择排序_(2)
猜你喜欢
转载自blog.csdn.net/qq_63173957/article/details/124561471
今日推荐
周排行