数据表中有10000个元素,如果仅要求求出其中最大的10个元素,则采用( )算法最节省时间.为什么?

A.冒泡排序B.快速排序C.简单选择排序D.堆排序... A.冒泡排序 B.快速排序 C.简单选择排序 D.堆排序 展开
 我来答
小溪趣谈电子数码
高粉答主

2020-07-10 · 专注解答各类电子数码疑问
小溪趣谈电子数码
采纳数:2103 获赞数:584698

向TA提问 私信TA
展开全部

数据表中有10000个元素,如果仅要求求出其中最大的10个元素,则采用堆排序最节省时间。

堆排序是指利用堆这种数据结构所设计的一种排序算法。堆是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点;在堆的数据结构中,堆中的最大值总是位于根节点(在优先队列中使用堆的话堆中的最小值位于根节点)。

扩展资料:

堆排序的基本思想是将待排序序列构造成一个大顶堆,此时,整个序列的最大值就是堆顶的根节点。将其与末尾元素进行交换,此时末尾就为最大值。然后将剩余n-1个元素重新构造成一个堆,这样会得到n个元素的次小值。如此反复执行,便能得到一个有序序列了。

将堆顶元素与末尾元素进行交换,使末尾元素最大。然后继续调整堆,再将堆顶元素与末尾元素交换,得到第二大元素。如此反复进行交换、重建、交换。

参考资料来源:

百度百科-快速排序算法

神出鬼没企鹅

2022-01-04 · 贡献了超过148个回答
知道答主
回答量:148
采纳率:100%
帮助的人:2.9万
展开全部

选堆排序。

看到节省时间,就想到快排,但是这里数据特别多?!那就得想到堆排序。因为快排期望时间复杂度为O(nlogn)最坏为O(n^2),而堆排序是严格O(nlogn),所以相比之下,本题选D堆排序。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友26ad406
2012-12-12 · TA获得超过1611个赞
知道大有可为答主
回答量:1506
采纳率:100%
帮助的人:1067万
展开全部
D
O(nlogk)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式