快速排序(分治)
来源:互联网 发布:唯美画面知乎 编辑:程序博客网 时间:2024/06/04 19:49
1:输出前k大的数
- 总时间限制:
- 10000ms
- 单个测试点时间限制:
- 1000ms
- 内存限制:
- 65536kB
- 描述
给定一个数组,统计前k大的数并且把这k个数从大到小输出。
- 输入
- 第一行包含一个整数n,表示数组的大小。n < 100000。
第二行包含n个整数,表示数组的元素,整数之间以一个空格分开。每个整数的绝对值不超过100000000。
第三行包含一个整数k。k < n。 - 输出
- 从大到小输出前k大的数,每个数一行。
- 样例输入
104 5 6 9 8 7 1 2 3 05
- 样例输出
98765
源代码
#include<stdio.h>#include<algorithm>using namespace std;void swap(int & a, int & b){int tmp = a;a = b;b = tmp;}void QuickSort(int a[], int s ,int e){if(s>=e)return ;int k=a[s];int i=s , j=e;while(i!=j){while(i < j && a[j] >= k )j--;swap(a[i] , a[j]);while(i < j && a[i] <= k)i++;swap(a[i] , a[j]);}QuickSort(a , s , i-1);QuickSort(a , i+1 , e); }int main(){int a[100005];int n;scanf("%d",&n);for(int i=0; i<n; i++){scanf("%d",&a[i]);}QuickSort(a, 0, n-1);int m;scanf("%d",&m);for(int j=n-1 ; j>n-m-1 ; j--)printf("%d\n",a[j]);return 0; }
阅读全文
0 0
- 快速排序(分治)
- 快速排序(分治法)
- 快速排序(分治法)
- 快速排序(分治算法)
- 排序算法--快速排序(分治法)
- 分治与递归(二)--- 快速排序
- 分治算法二(快速排序)
- 分治算法三(随机化快速排序)
- 快速排序(分治法实现)
- 快速排序(分治法O(nlogn))
- Java实现快速排序(分治法)
- 分治策略----快速排序
- 分治法--快速排序
- 分治法--快速排序
- 分治法-快速排序
- 分治法-快速排序
- 分治法-----快速排序
- 分治算法-快速排序
- Codeforces Round #237 (Div. 2) 404B Marathon【精度】 好题!!!!
- C和C++的一点小区别
- C语言 printf格式控制符 完全解析
- 深入理解LinkedList
- leetcode之压缩字符串中的重复字符
- 快速排序(分治)
- spring容器创建对象的3种方式(bean的实例化)
- MySQL之数据库存储引擎及事务ACID特性
- ElasticSearch Java Api(一) -创建索引
- 关于mysql中基本数据类型的一些认识
- 序列得一点点知识
- 《疯狂 Java 突破程序员基本功的 16 课》读书随记
- input输入框内容变化实时监听
- 教你彻底学会动态规划——入门篇