推排序
来源:互联网 发布:智慧树网络课怎么刷课 编辑:程序博客网 时间:2024/04/29 05:48
题目描述:
输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。
- 输入:
每个测试案例包括2行:
第一行为2个整数n,k(1<=n,k<=200000),表示数组的长度。
第二行包含n个整数,表示这n个数,数组中的数的范围是[0,1000 000 000]。
- 输出:
对应每个测试案例,输出最小的k个数,并按从小到大顺序打印。
- 样例输入:
8 4
4 5 1 6 2 7 3 8
- 样例输出:
1 2 3 4
#include <stdio.h> int adjust_heap(int *array, int head, int len){ int nchild; int i; for(; 2 * head + 1 < len; head = nchild) { nchild = 2 * head + 1; if(nchild < len - 1 && array[nchild] > array[nchild + 1]) { nchild++; } if(array[head] > array[nchild]) { int t; t = array[head]; array[head] = array[nchild]; array[nchild] = t; } else { break; } } return 0;} int heap_sort(int *array, int len, int k){ int i; for(i = len / 2 - 1; i >= 0; i--) { adjust_heap(array, i, len); } for(i = len - 1; i >= len - k; i--) { int t; t = array[0]; array[0] = array[i]; array[i] = t; adjust_heap(array, 0, i); }} int main(){ int n, k; while(scanf("%d%d", &n, &k) != EOF) { int *array; int i; array = (int *)calloc(n, sizeof(int)); for(i = 0; i < n; i++) { scanf("%d", &array[i]); } heap_sort(array, n, k); for(i = n - 1; i >= n - k + 1; i--) { printf("%d ", array[i]); } printf("%d\n", array[n - k]); free(array); } return 0;} /************************************************************** Problem: 1371 User: dellzhui Language: C Result: Accepted Time:830 ms Memory:1696 kb****************************************************************/
0 0
- 推排序
- 推排序
- 排序算法:推排序
- 建小顶堆以及推排序
- 推排序举例
- 推排序算法C/C++
- 堆排序及推排序实现[原创]
- 直接插入排序、归并排序、推排序、快速排序
- ural 1306 (heap推排序)
- 数据结构之“堆”及推排序
- [BZOJ 4562] 食物链 拓扑排序+递推
- [BZOJ1179][APIO2009][Tarjan][拓扑排序][递推]Atm
- 算法中推排序的思想以及程序表示
- LuoguP1038[NOIP2003] 神经网络 解题报告【拓扑排序+DP/递推】
- 堆排序---最大堆的创建和最大推的排序
- ztree仅并排同级进行推拽(同一个组织下不同部门排序拖拽)
- ACM 算法竞赛 八大基础算法 模拟法 字符串 递归分治 排序 枚举 贪心 递推
- 自行车_纪中1238_缩点+拓扑排序+递推
- Allergo 学习总结
- 关于UIWebView的简单使用实例
- 无法加载协定为“ServiceReference1.TrainTimeWebServiceSoap”的终结点配置部分,因为找到了该协定的多个终结点配置。请按名称指示首选的终结点配置部分。
- SVM vs Adboost
- 产品经理必须要懂的十种亚文化
- 推排序
- Android中View和ViewGroup介绍
- 正则表达式练习
- Myeclipse10.1环境下搭建SSH框架(图解)
- JBoss无规律自动关闭故障定位
- 深入理解const char*p,char const*p,char *const p,const char **p,char const**p,char *const*p,char**const p
- 设置文件下载页面的代码时下载后的数据出现数据错误的错误原因和解决办法
- Nginx Location配置总结
- OC语言复习属性的声明