首页 > 试题广场 >

设一组初始记录关键字序列为(30,15,40,28,50,1

[单选题]
设一组初始记录关键字序列为(30,15,40,28,50,10,70),则第一趟霍尔排序结果为(      )
  • 10,15,28,30,40,50,70
  • 10,28,15,30,50,40,70
  • 10,15,28,30,50,40,70
  • 10,28,15,30,40,50,70
这道题应该是选择以第一个数30为基准进行霍尔排序。
过程:
将30赋给变量base,令i=0, j=length-1=6;
此时需要对a[0]进行数据填充,我们从后往前找比base小的数据,当j=5时,a[j]=10,将其填入a[0],数组变为10, 15, 40, 28, 50, 10, 70,i++(i=1);
此时需要对a[5]进行数据填充,我们从前往后找比base大的数据,当i=2时,a[i]=40,将其填入a[5],数组变为10, 15, 40, 28, 50, 40, 70,j--(j=4);
此时需要对a[2]进行数据填充,我们从后往前找比base小的数据,当i=3时,a[j]=28,将其填入a[2],数组变为10, 15, 28, 28, 50, 40, 70,i++(i=3);
此时i=j=3,将base填入,得到第一趟霍尔排序结果:10, 15, 28, 30, 50, 40, 70
发表于 2020-08-31 15:12:38 回复(0)