早教吧 育儿知识 作业答案 考试题库 百科 知识分享

关于数据结构排序算法的问题插入排序、选择排序、冒泡排序、基数排序、堆排序的算法中其比较次数与初始数据集顺序无关的是?请说明理由.

题目详情
关于数据结构排序算法的问题
插入排序、选择排序、冒泡排序、基数排序、堆排序的算法中其比较次数与初始数据集顺序无关的是?请说明理由.
▼优质解答
答案和解析
选择排序.
选择排序的算法原理是:第一趟从n个待排关键字中找出最小的关键字放到第一个位置,如果要找到最小关键字则必须所有元素都进行比较,所以第一趟要比较n-1次;第二趟从剩下的n-1的元素中再通过n-2次的比较找出最小的元素…………以此类推,不管初始有没有序,它都一共要进行n-1趟排序共n(n-1)/2次比较,时间复杂度始终是O(n平方)
至于其他的,拿插入排序举例:插入排序的基本思想是每次将一个待排的记录按其关键字大小插入到前面已经排好序的子序列中.试想,如果已经排好序的子序列是123,待排记录为45,插入4时,只要和3比较一次就知道排在3后面,对5排序时只要与4比较一次就知道该排在4后面,共比较2次.如果已经排好序的子序列是234,待排记录为15,插入1时,它要从后往前依次比较3次才能找到自己的位置,同样对5排序时只要与4比较一次,共比较4次.由上例可知,插入排序会随着初始数据集的顺序不同而比较次数不同.
BTW,基数排序不是基于关键字比较的排序算法.
纯手打,望采纳,不清楚还可共同探讨.
看了 关于数据结构排序算法的问题插...的网友还看了以下:

若对一个已经排好序的序列进行排序,在下列4种方法中,哪种方法比较好?A.冒泡法B.直接选择法C.直接  2020-05-23 …

若对一个已经排好了序的序列进行排序,在下列4种方法中,哪一种方法比较好?A.冒泡法B.直接选择法C.  2020-05-23 …

若对一个已经排好了序的序列进行排序,在下列四种方法中,哪种方法比较好 ()。A.冒泡法B.直接选择法  2020-05-23 …

内部排序序列的状态是逆序列使用哪种排序方法比较好某序列是逆序列(比如按大到小排列)要将它排成正序列  2020-06-12 …

国际私法学--当事人根据意思自治原则选择的法律应是一国现行有效的国际私法学--当事人根据意思自治原  2020-07-22 …

有关冒泡排序相对冒泡排序算法,选择排序具有较高的排序效率.若用冒泡排序和选择排序对100个杂乱无章  2020-07-23 …

内部排序算法比较(1)对以下7种常用的内部排序算法进行比较:起泡排序、直接插入排序、简单选择排序、快  2020-11-28 …

数据结构求答案单选题第1题(2)分排序趟数与序列的原始状态有关的排序方法是()排序法。A、插入B、选  2020-12-05 …

下面的语句运用了哪些修辞手法,选择正确的,将序号填入“()”中A.拟人B.比喻C.排比D.夸张E.反  2021-01-13 …

关于数据结构的题1、填空题1.快速排序和堆排序的平均时间复杂度分别为和。2、选择题1.下面给出的四种  2021-01-14 …