小红有n颗花生,每颗花生的大小各不相同。现在小红想把第k小的花生找出来吃掉,请编写一个程序找到第k小的花生。
请完善下面程序:
#include <bits/stdc++.h> using namespace std; int b[1005]; int i,n,k; int p(int s,int t)//分成左右两部分,左边花生都比右边的花生小 { int i,j,t1,x; i=s; j=t; ______(6)________ do { while(b[j]>=x&&j>i) j=j-1; if(j>i) { t1=b[i]; b[i]=b[j]; b[j]=t1; } while(b[i]<=x&&j>i) i=i+1; if(j>i) { t1=b[j]; b[j]=b[i]; b[i]=t1; } }_____(7)______; b[i]=x; return i; } int find(int s, int t, int k) { int p1,q; if(s==t) return b[s]; else { ______(8)________; q=p1-s+1;//统计当前范围内有多少花生比较小 if(k<=q) return find(s,p1,k); else return ______(9)_______; } } int main() { cin>>n>>k; for(i=1;i<=n;i++) cin>>b[i]; cout<<"kthsmall="<<_____(10)_______<<endl; return 0; }