4.查找最小的k 个元素
来源:互联网 发布:定制婴儿知乎 编辑:程序博客网 时间:2024/05/17 05:11
题目:输入n 个整数,输出其中最小的k 个。
可能还有更好的办法,以后找到了再补上!
例如输入1,2,3,4,5,6,7 和8 这8 个数字,则最小的4 个数字为1,2,3 和4。
分析:我以前做过一道让我们求第k小数,当时我用的是快排的思想,时间复杂度比快排的n*log(n)少了不少,但还不是线性的。
快排思想代码实现:
#include<iostream>#include<string>#define N 1000using namespace std;int n,k;int partition(int l,int r,int a[]){int key=a[l],index=l,i;for(i=l+1;i<r;i++){if(key>a[i]){index++;swap(a[index],a[i]);}}swap(a[l],a[index]);return index;}void quickSort(int l,int r,int a[]){if(l<r){int mid=partition(l,r,a);if(k>=l&&k<=mid) quickSort(l,mid,a);else quickSort(mid+1,r,a);}}int main(){int i;int a[N];while(cin>>n>>k){k--;for(i=0;i<n;i++)cin>>a[i];quickSort(0,n,a);for(i=0;i<=k;i++)cout<<a[i]<<" ";cout<<endl;}return 0;}
可能还有更好的办法,以后找到了再补上!
0 0
- 4.查找最小的k 个元素
- 查找最小的k个元素
- 查找最小的k个元素
- 查找最小的 k个元素
- 查找最小的 K 个元素
- 查找最小的k个元素
- 5.查找最小的k个元素
- 查找最小的k个元素
- 查找最小的k个元素
- 查找最小的k个元素
- 5.查找最小的k个元素
- 查找最小的k个元素(数组)
- 查找最小的K个元素
- 查找最小的K个元素
- 查找最小的k个元素
- 查找最小的k个元素[算法]
- 查找最小的k 个元素
- 查找最小的k个元素
- storm优化topology思路
- 黑马程序员-java环境配置path与classpath
- 如何关闭CAD中的*BAK文件?
- Android 系统重启与关机:Java 代码实现(3)
- iOS开发一行代码系列:一行搞定输入框优化
- 4.查找最小的k 个元素
- Android WebView开发问题及优化汇总
- lesson19
- 人,说到底还是要靠自己。
- CAD中如何删除顽固图层?
- linux0.11init进程及shell原理分析
- OC内存管理剖析
- java只有值传递(P123)
- Windows终止线程的四种方法