希望用最快的速度从一个无序数组中挑选出其中前十个最大的元素,在以下的排序方法中()
A.快速排序
B.堆排序
C.归并排序
D.基数排序
正确答案是 B
用堆排序最好,因为堆排序不需要等整个排序结束就可挑出前50个最大元素,而快速排序和基数排序都需等待整个排序结束才能知道前50个最大元素。
取前k大的元素,可以利用快排中间类似的思想,以一个元素为基准进行划分。 堆排序建堆的时候复杂度已经是nlogn了吧,那应该和快排是一个数量级了吧。
堆排序就是变向的二叉树吧,所以堆排序快!
选快排吧 快排有一种不需要全部排序的算法,只需要得到倒数第十个位置就可以了啊
从浏览器输入URL到展示页面的全流程是怎么样的?
小程序没有分享到朋友圈的功能,但是产品为了推广,需要曲线实现这个功能,请给出设计方案?
某公园内有个奇怪的摊主小周,他只在星期一、星期二、星期三、星期五和星期六工作,而且他只出售4种商品:玩具汽车、充气气球、橡皮泥和遥控飞机。<
ArrayList和LinkedList的区别,以及各自是怎么实现扩容的?
取前k大的元素,可以利用快排中间类似的思想,以一个元素为基准进行划分。 堆排序建堆的时候复杂度已经是nlogn了吧,那应该和快排是一个数量级了吧。
堆排序就是变向的二叉树吧,所以堆排序快!
选快排吧 快排有一种不需要全部排序的算法,只需要得到倒数第十个位置就可以了啊