题目:输入n个整数,输出其中最小的K个
例如输入1,2,3,4,5,6,7,8这8个数字,则最小的4个数字为1,2,3和4
思路1:显而易见,最简单的思路就是把输入的这组数据进行排序,然后输入最前面的K个数就行了,下面直接给出代码,代码比较简单,不多做解释
#include<iostream>
using namespace std;
void swap(int &x,int &y)
{
int temp=x;
x=y;
y=temp;
}
void insertion(int a[],int size,int key)
{
for(int i=1;i<size;i++)
{
int j=i;
while((j>0)&&(a[j]<a[j-1]))
{
swap(a[j],a[j-1]);
--j;
}
}
cout<<endl<<"请输出其中最小的"<<key<<"个"<<endl;;
for(int k=0;k<key;k++)
{
cout<<a[k]<<" ";
}
}
int main()
{
int a[]={6,4,5,1,2,7,3,8};
int size=sizeof(a)/sizeof(int);
for(int i=0;i<size;i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
int key;
cout<<"Please input the key"<<endl;
cin>>key;
insertion(a,size,key);
system("pause");
return 0;
}
思路2:未完待续,下次再写