九度OJ-题目1174:查找第K小数-10网研上机B

来源:互联网 发布:社交网络 百度云盘 编辑:程序博客网 时间:2024/06/06 15:48

题目描述:
查找一个数组的第K小的数,注意同样大小算一样大。
如 2 1 3 4 5 2 第三小数为3。
输入:
输入有多组数据。
每组输入n,然后输入n个整数(1<=n<=1000),再输入k。
输出:
输出第k小的整数。
样例输入:
6
2 1 3 5 2 2
3
样例输出:
3

#include <iostream>#include <cstdio> #include <algorithm>#define MAXSIZE 1010using namespace std;int main(){    int n,k;    int count,min;    int buf[MAXSIZE];    while (scanf("%d",&n)!=EOF){        //input        for (int i=0;i<n;i++){            scanf("%d",&buf[i]);        }        scanf("%d",&k);        //sort        sort(buf,buf+n);        //search        count=1;        min=buf[0];        for (int i=1;i<n;i++){            if (buf[i]>min){                min=buf[i];                count++;            }            if (count==k){                printf("%d\n",buf[i]);                break;            }        }    }    return true;}
0 0