用选择法对10个整数按从小到大排序,要求使用数组。
算法思想:
第一次选择:从10个整数中挑出其中最小的整数,拿出来;
第二次选择:从余下的9个整数中挑出其中最小的整数,拿出来,放到上一次挑出的数的后面;
第三次选择:从余下的8个整数中挑出其中最小的整数,拿出来,放到上一次挑出的数的后面;
…………
以此类推,直到全部挑完。
#include "stdafx.h"
#include<iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
cout<<"请输入10个整数"<<endl;
int a[10],i,b[10],j,n=0;
for(i=0;i<10;i++)
{
cin>>a[i]; //输入10个数,依次放到数组a里。
}
for(j=1;j<=10;j++) //共要进行10次选择
{
for(i=0;i<10-j;i++) //这个循环将挑出余下数中最小的数
{
int t;
if(a[i]<a[i+1])
{
t=a[i];a[i]=a[i+1];a[i+1]=t;
}
}
b[n]=a[10-j]; //将挑出的数依次放到数组b里
n++;
}
for(n=0;n<10;n++)
{
cout<<b[n]<<" "; //按顺序输出数组b里存放的数
}
return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-12 08:26:52