任务描述
本关任务:输入正整数k,在数组(无序)中找出第k个最小的数。(1<=k<=n),用快速排序的基本思想来完成!
。
相关知识
为了完成本关任务,你需要掌握:快速排序的基本思想。
快速排序的基本思想
基本思想:在待排序的n个元素中任取一个元素(通常取第一个元素)作为基准,把该元素放入最终位置后,整个数据序列被基准分割成两个子序列,所有小于基准的元素放置在前子序列中,所有大于基准的元素放置在后子序列中,并把基准排在这两个子序列的中间,这个过程称作划分。
然后对两个子序列分别重复上述过程,直至每个子序列内只有一个记录或空为止。
还是直接排序,这题没意思
代码:
#include "bits/stdc++.h"
using namespace std;
#define int long long
int b[10]={27,1,18,78,68,10,34,900,23,12};signed main(){int n;cin>>n;sort(b,b+10);cout<<"the "<<n<<" least number is: ";cout<<b[n-1];
}