早教吧作业答案频道 -->数学-->
关于数据结构排序算法的问题插入排序、选择排序、冒泡排序、基数排序、堆排序的算法中其比较次数与初始数据集顺序无关的是?请说明理由.
题目详情
关于数据结构排序算法的问题
插入排序、选择排序、冒泡排序、基数排序、堆排序的算法中其比较次数与初始数据集顺序无关的是?请说明理由.
插入排序、选择排序、冒泡排序、基数排序、堆排序的算法中其比较次数与初始数据集顺序无关的是?请说明理由.
▼优质解答
答案和解析
选择排序.
选择排序的算法原理是:第一趟从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,基数排序不是基于关键字比较的排序算法.
纯手打,望采纳,不清楚还可共同探讨.
选择排序的算法原理是:第一趟从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,基数排序不是基于关键字比较的排序算法.
纯手打,望采纳,不清楚还可共同探讨.
看了 关于数据结构排序算法的问题插...的网友还看了以下:
若对一个已经排好序的序列进行排序,在下列四种方法中,( )比较好。A.起泡法B.直接选择法C.直接插 2020-05-23 …
若对一个已经排好序的序列进行排序,在下列4种方法中,哪种方法比较好?A.冒泡法B.直接选择法C.直接 2020-05-23 …
教室里有4排日光灯,每排灯各由一个开关控制,但灯的排数序号与开关序号不一定对应,其中控制第二排灯的 2020-06-24 …
数据结构:给出一组排序码序列(49,38,65,97,76,13,27,50)(1)写出堆排数据结 2020-07-17 …
数据结构——排序将一个杂乱无序的整数序列,按照从小到大的顺序排列并输出。请加入解释注意:不能调用系 2020-07-23 …
设S=X1Y1+X2Y2+.+XnYn,其中X1,X2,...,Xn和Y1,Y2...,Yn是排序 2020-08-02 …
输入N个整数,存入一个数组中。1)应用某种排序算法将这N个数有大到小的顺序排序,输出排序的结果并存入 2020-11-17 …
每排的座位数AN与排的序数N的关系.体育馆的每个区,每排的座位数AN与排的序数N的关系,写出用N表示 2020-11-18 …
设有一个已按由小到大排好序的数组,今输入一个整数,要求按原来排序的规律将它插入到数组中。:设有一个已 2020-12-05 …
如图是某教室里日光灯的四个控制开关(分别记为A、B、C、D),每个开关分别控制一排日光灯(开关序号与 2021-01-13 …