下列排序方法中,最坏情况下比较次数最少的是 A)冒泡排序

B)简单选择排序C)直接插入排序D)堆排序E快速排序... B)简单选择排序
C)直接插入排序
D)堆排序E快速排序
展开
 我来答
Soucula
推荐于2017-12-16 · TA获得超过3091个赞
知道小有建树答主
回答量:744
采纳率:93%
帮助的人:71.4万
展开全部
最坏情况下比较次数最少的为D)堆排序
A)冒泡排序 需要比较O(n^2)次(n(n - 1)/2次),即序列逆序的情况
B)简单选择排序,无论是否最坏都需要O(n^2)次(n(n - 1)/2次)
C)直接插入排序,最坏情况需要比较O(n^2)次(n(n - 1)/2次)
D)堆排序,无论是否最坏比较O(nlog2n)次
E)快速排序,最坏情况退化为冒泡排序,需要比较O(n^2)次(n(n - 1)/2次)
和蔼的曾海永
2018-03-31 · TA获得超过8830个赞
知道小有建树答主
回答量:108
采纳率:100%
帮助的人:3万
展开全部

最坏情况下比较次数最少的为D)堆排序

延展回答:

A)冒泡排序 需要比较O(n^2)次(n(n - 1)/2次),即序列逆序的情况


B)简单选择排序,无论是否最坏都需要O(n^2)次(n(n - 1)/2次)


C)直接插入排序,最坏情况需要比较O(n^2)次(n(n - 1)/2次)


D)堆排序,无论是否最坏比较O(nlog2n)次


E)快速排序,最坏情况退化为冒泡排序,需要比较O(n^2)次(n(n - 1)/2次)

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
焦采杉t0
2021-04-07 · TA获得超过4567个赞
知道大有可为答主
回答量:1.9万
采纳率:54%
帮助的人:581万
展开全部
什么是交换排序呢?

交换排序:两两比较待排序的关键字,并交换不满足次序要求的那对数,直到整个表都满足次序要求为止。

算法思想

它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。

这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端,故名。

假设有一个大小为 N 的无序序列。冒泡排序就是要每趟排序过程中通过两两比较,找到第 i 个小(大)的元素,将其往上排。

以上图为例,演示一下冒泡排序的实际流程:

假设有一个无序序列 { 4. 3. 1. 2, 5 }

第一趟排序:通过两两比较,找到第一小的数值 1 ,将其放在序列的第一位。

第二趟排序:通过两两比较,找到第二小的数值 2 ,将其放在序列的第二位。

第三趟排序:通过两两比较,找到第三小的数值 3 ,将其放在序列的第三位。

至此,所有元素已经有序,排序结束。

要将以上流程转化为代码,我们需要像机器一样去思考,不然编译器可看不懂。

假设要对一个大小为 N 的无序序列进行升序排序(即从小到大)。

(1) 每趟排序过程中需要通过比较找到第 i 个小的元素。

所以,我们需要一个外部循环,从数组首端(下标 0) 开始,一直扫描到倒数第二个元素(即下标 N - 2) ,剩下最后一个元素,必然为最大。

(2) 假设是第 i 趟排序,可知,前 i-1 个元素已经有序。现在要找第 i 个元素,只需从数组末端开始,扫描到第 i 个元素,将它们两两比较即可。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式