【正确答案】
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不正确。