问题 单项选择题

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

A.选择

B.快速

C.希尔

D.冒泡

答案

参考答案:C

解析:希尔排序又称“缩小增量排序”,是一种改进的插入排序,在时间效率上有了较大的改进。对直接插入排序来说,比较的步长为1。这种情况下,如果较小的数在序列的较后面部分,则需要一步一步的向前移动,无疑是比较慢的。如果采用步长>1的方法,则可以使较小的数向前推进是“跳跃式”进行,故可以提高排序效率。
方法:将整个序列分成若干子序列,对各个子序列进行直接插入排序,得到一趟希尔排序序列;然后缩短步长,重复以上动作,直到步长为1。具体步骤如下:
①先取一正整数d(d<n,一般可取d=[*] ),把所有距离为d的倍数的记录编在一组,组成一个子序列,这样将整个待排序序列分成若干组;
②在各个子序列中进行直接插入排序;
③取一个新的d(比原来的要小,一般取原来的1/2),重复执行1),2),直到d=1为止(此时,整个序列变成直接插入排序)。

选择题
单项选择题