百度面试题之查找最小的K个元素

来源:互联网 发布:火锅烧烤网络营销策划 编辑:程序博客网 时间:2024/05/01 14:48

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

1 0
原创粉丝点击