设有5000个待排序的记录的关键字,如果需要用最快的方法选出其中最小的10个记录关键字,则用下列哪个方法可以达到此目的 。( )
A. 快速排序
B. 堆排序
C. 归并排序
D. 插入排序
正确答案:B
首先,这个题的宗旨是以最短的时间达到局部有序!
所以应用堆排序这样处理:
1.取出10个数先进行堆排序。
2.依次遍历剩下的5000-10个数,每读一个数,跟堆里最大的数进行比较,如果比堆里的最大数还大,将其舍弃读下一个数,如果比堆里的最大数小,删除最大数,将其插入到原最大数位置,并进行堆排序。
3.重复2中步骤直至5000-10个数遍历完成。
这种做法的堆排序实际上并没有将5000个数全部变为有序。显然其他排序方法无法达到这样的效果。
帖子还没人回复快来抢沙发
列举一款你常用的移动APP,并分析他的最核心功能、满足的需求、超预期的功能以及竞争优势和发展趋势
从浏览器输入URL到展示页面的全流程是怎么样的?
小程序没有分享到朋友圈的功能,但是产品为了推广,需要曲线实现这个功能,请给出设计方案?
cookies,sessionStorage 和 localStorage 的区别?
帖子还没人回复快来抢沙发