17)在所有排序方法中,关键字比较的次数与记录的初始排列次序无关的是( ) 。 选择排序。为什么呢???
答案:5 悬赏:80 手机版
解决时间 2021-04-15 17:24
- 提问者网友:爱唱彩虹
- 2021-04-15 07:03
17)在所有排序方法中,关键字比较的次数与记录的初始排列次序无关的是( ) 。 选择排序。为什么呢???
最佳答案
- 五星知识达人网友:罪歌
- 2021-04-15 08:06
每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。
可以看到,每次都是遍历一遍剩下要排序的部分,找出其最大值或最小值。所以。。。。。追问不理解 所谓的关键字比较的次数 和 记录的初始排序次序 是什么意思追答记录的初始排序次序 就是 排序前的状态 1 4 5 6 7 8 9 2 3 这就是初始排序次序。
关键字的比较次数,就是比较的次数,例如从大到小排序,你得进行比较,类似这样的语句:
if(a[1]{
则交换两个值。
}追问那冒泡也与 初始排序次序无无关ya ?追答若记录序列的初始状态为"正序",则冒泡排序过程只需进行一趟排序,在排序过程中只需进行n-1次交换,且不移动记录;反之,若记录序列的初始状态为"逆序",则需进行n(n-1)/2次比较和记录移动。因此冒泡排序总的时间复杂度为O(n*n)。追问还是不懂``追答这个>>>>> 我也不知道怎么解释了。
可以看到,每次都是遍历一遍剩下要排序的部分,找出其最大值或最小值。所以。。。。。追问不理解 所谓的关键字比较的次数 和 记录的初始排序次序 是什么意思追答记录的初始排序次序 就是 排序前的状态 1 4 5 6 7 8 9 2 3 这就是初始排序次序。
关键字的比较次数,就是比较的次数,例如从大到小排序,你得进行比较,类似这样的语句:
if(a[1]{
则交换两个值。
}追问那冒泡也与 初始排序次序无无关ya ?追答若记录序列的初始状态为"正序",则冒泡排序过程只需进行一趟排序,在排序过程中只需进行n-1次交换,且不移动记录;反之,若记录序列的初始状态为"逆序",则需进行n(n-1)/2次比较和记录移动。因此冒泡排序总的时间复杂度为O(n*n)。追问还是不懂``追答这个>>>>> 我也不知道怎么解释了。
全部回答
- 1楼网友:酒安江南
- 2021-04-15 12:08
你赶紧去找一本书先看一下,就知道怎么回事了,很简单的!
- 2楼网友:英雄的欲望
- 2021-04-15 11:29
答案是直接选择排序!因为不管初始排列次序是相对正序还是相对乱序,选择排序对关键字的比较次数都是相同的!因为它每一次都要选出关键字中最小的!
- 3楼网友:狂恋
- 2021-04-15 10:03
因为选择排序每趟选择的比较次数是固定的,不会因为顺序不一样而比较次数不一样。比如(1,2,3)和(3,2,1)这两个序列次序不同,但是在第一趟选择排序中选出最小的值1同样进行2次比较,第二趟选出第二小的值2同样进行1次比较……也就是说,……
- 4楼网友:话散在刀尖上
- 2021-04-15 08:24
冒泡也与初始排序次序有关,因为一般在实现冒泡排序时,都采用改进算法,设置一个标志位flag,将其初始值设置为非0,表示被排序的表示是一个无序的表,每一次排序开始前设置flag值为0,在进行数据交换时,修改flag为非0。在新一轮排序开始时,检查此标志,若此标志为0,表示上一次没有做过交换数据,则结束排序;否则进行排序。所以,当记录序列的初始状态为"正序",则冒泡排序过程只需进行一趟排序即可
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯