题目:输入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:未完待续,下次再写