|NOIOJ|二分快排|7617:输出前k大的数

来源:互联网 发布:淘宝网pc版 编辑:程序博客网 时间:2024/06/05 18:08

http://noi.openjudge.cn/ch0203/7617/

水题,用快排即可
参考代码

#include<cstdio>int a[100200];int n,k;void qs(int l, int r) {int i=l, j=r, x=a[(l+r)/2], y;do {while(a[i]>x) i++;while(a[j]<x) j--;if(i<=j) {y = a[i];a[i]=a[j], a[j]=y;i++, j--;}} while (i<=j);if (l<j) qs(l,j);if (i<r) qs(i,r); }void init() {scanf("%d", &n);for (int i=1;i<=n;i++) {scanf("%d", &a[i]);}scanf("%d", &k);}void go() {qs(1, n);for (int i=1;i<=k;i++) {printf("%d\n", a[i]);}}int main() {init();go();return 0;}


0 0
原创粉丝点击