中易网

给定值k,在无记录a[1]...a[n]中找到关键字从小到大排序的第k位上的记录,设计一个你认为最适合的算法。

答案:2  悬赏:70  
解决时间 2021-03-21 13:41
给定值k,在无记录a[1]...a[n]中找到关键字从小到大排序的第k位上的记录,设计一个你认为最适合的算法。
最佳答案
从a[1]到a[n]逐个扫描一遍即可,内存中维护一个长度是k的数组,用来保存当前的前k小的记录。这k个记录用最大堆维护。
算法复杂度O(nlogk)
全部回答
#includeusing namespace std;int main(){ int a[9]; cout<<"请输入数据:"; for(int i=0;i<9;i++) cin>>a[i]; int s=0; int t=0; int temp; for(s=0;s<9;s++) { for(t=s;t<9-s;t++) if(a[s+1]
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯