单选题 以下关于希尔排序的说法中,正确的是______。
  • A.当待排序元素序列的初始排列基本有序时,希尔排序比直接插入排序快
  • B.当待排序元素序列的初始排列基本逆序时,希尔排序比直接插入排序快
  • C.当待排序元素序列的初始排列基本有序时,希尔排序比起泡排序快
  • D.当待排序元素序列的初始排列基本逆序时,希尔排序比起泡排序慢
【正确答案】 B
【答案解析】[解析] 当待排序元素序列的初始排列基本有序时,希尔排序的排序码比较次数为n*(log2n-1)+1,元素移动次数为0。直接插入排序的排序码比较次数为n-1,元素移动次数为0,起泡排序的排序码比较次数为n-1,元素移动次数为0。因此希尔排序不比直接插入排序和起泡排序快,选项A和选项C不正确。当待排序元素序列的初始排列基本逆序时,希尔排序的排序码比较次数和元素移动次数为1.5n;直接插入排序的排序码比较次数为n(n-1)/2,元素移动次数为(n+4)(n-1)/2;起泡排序的排序码比较次数为n(n-1)/2,元素移动次数为3n(n-1)/2;这种场合,希尔排序比直接插入排序和起泡排序都要快,所以选项B正确,选项D不正确。