校招刷题群
高效刷题 迎战校招
校招精选试题
近年面笔经面经群内分享
Java刷题群 前端刷题群 产品运营群
首页 > 数据结构 > 希尔排序
题目

对序列{15,9,7,8,20,-1,4}进行排序,进行一趟后数据的排列变为{4,9,-1,8,20,7,15};则采用的是()排序

A.选择

B.快速

C.希尔

D.起泡

解答

正确答案是 C

希尔排序,选择步长为3,
分为[15,8,4][9,20][7,-1]三组,
对这三组插入排序得[4,8,15][9,20][-1,7]
对应相对位置,即为一次排序后的结果.
C 4条回复 评论
SLawliet

只会写初级sql的我看不大懂

发表于 2022-09-13 23:00:00
0 0
先锋

经典的快排
默认Key值为array[0] 也就是15
从index i= 1 从左右厉遍和j = array.length-1向左厉遍(i<=j)
向右 找打大于key值的值 向左找到小与key值的值 交换
将key与i停留位置交换
这是第一遍过程
这里就是
向右找到20 向左找到·4
20 和 4 交换
i在4此时的位置
4 和key值 15交换
得出第一次结果  

发表于 2018-10-13 14:14:27
0 0
橘子汽水

C,步长为3的希尔排序

发表于 2018-10-13 14:14:05
0 0
碎梦不是梦碎

排除就好了,迅速扫描一下,最大的不再最后,最小的不再最前,肯定排序冒泡和选择;再次扫描,不是俩个有序数列,排除选择。所以就是希尔。咋样之间看出来增量是三呢?观察前后不一样的数字,发现 15,4-》4,15  ; 假设增量为6,验证不对。  7,-1,-》-1,7;假设增量为3,对啦。所以.....

发表于 2018-10-13 14:13:51
0 0