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

xiaoxiao2021-02-27  271

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

转载请注明原文地址: https://www.6miu.com/read-7706.html

最新回复(0)