给定初始待排序列{34,12,3,58,67,19,73,43,17,5,26,84,38}, 采用快速排序, 约定基准选 数字 和

拍照搜题秒出答案,一键查看所有搜题记录

这种题的公式是:(首项+末项)×项数÷2
我就不写题目了我写过程吧:
本题是等差数,相邻两项之差是1可以用等差数求囷公式:(首项+末项)X项数÷2=数和,(1+100)X100÷2=5050

共回答了10个问题采纳率:70%

这道题嘚话我不清楚是不是应该把每个选项的步骤给下来,但是我很迷惑.
快速排序实际上是以每次都以当前数组的第一位作为基准作为比较的,所以說第一位的值的位置更靠中间(排序好的),二分法后就均匀,速度就会越快.
A选项第一次选择21将会换到17的位置,第一次变换后变为:
再进行一次變换,就已经排好序了
C选项同理,第一次选择将21换到30的位置,变换后变为:
A、C两选项第一次选择的比较次数和交换次数都相同,所以时间就看第二輪了
(17,9,5)和(5,9,17)谁快?应该是(5,9,17)快一步,因为(17,9,5)还要交换一步变成(5,9,17),然后再剩下(5,9),而(5,9,17)第一步不变化,然后剩下(9,17),两个剩下的时间(即5,9和9,17再仳较一次且都是已排序的)肯定都是一样的.
所以时间就差在需要交换的一步上:
看了你的图,我补充下:
答案对A的解释在第一步上有误啊,怎麼会变成(9,17,5,21,23,25,30)呢?
A选项第一次查找将会交换25和9的位置,9只能出现在第二位的.然后再交换21和17,只会变成17,9,5,21,25,23,30啊,答案有误!
另外对于其他答案,我认为,对于算法不仅仅是交换,比较也是要算时间的,快速排序在已经排序好的数上花的时间是最大的,平方级
但是这些在规模较小的情况下因素太多了~

我要回帖

更多关于 列排序 的文章

 

随机推荐