若一组记录的排序码为(46, 79, 56, 38, 40, 84),则利用快速排序,以第一个记录为基准得到的一次划分结果是
base = 46
i = 2;j = 3
此时 40, 38,56,56,79,84
i=2 处填上base值46
此时 40, 38,46,56,79,84
选C
初值化:基准值 base 为第一个元素的值,左指针 low 为第一个元素的值,右指针 high 为最后一个元素的值。
base = 46
| 描述 | ||||||
|---|---|---|---|---|---|---|
| low | high | 初始值 | ||||
| 46 | 79 | 56 | 38 | 40 | 84 | |
| high | high--,且找到小于 base 的值 | |||||
| 46 | 79 | 56 | 38 | 40 | ||
| low | low 更新 | |||||
| 40 | 79 | 56 | 38 | 40 | ||
| low | low++,且找到大于 base 的值 | |||||
| 79 | 56 | 38 | 40 | |||
| high | high 更新 | |||||
| 79 | 56 | 38 | 79 | |||
| high | high--,且找到小于 base 的值 | |||||
| 79 | 56 | 38 | ||||
| low | low 更新 | |||||
| 38 | 56 | 38 | ||||
| low | low++,且找到大于 base 的值 | |||||
| 56 | 38 | |||||
| high | high 更新 | |||||
| 56 | 56 | |||||
| high | high--,与 low 指针重合 | |||||
| 56 | ||||||
| 40 | 38 | 46 | 56 | 79 | 84 | low,high 的位置更新为 base 的值 将上面的值抄下来 |