首页 > 试题广场 >

设一组初始记录关键字序列(5,2,6,3,8),以第一个记录

[单选题]

设一组初始记录关键字序列(52638),以第一个记录关键字5为基准进行一趟快速排序的结果为()。

  • 2,3,5,8,6
  • 3,2,5,8,6
  • 3,2,5,6,8
  • 2,3,6,5,8
假设用户输入了如下数组:
下标
0
1
2
3
4
数据
5
2
6
3
8
创建变量i=0(指向第一个数据), j=4(指向最后一个数据), k=5(赋值为第一个数据的值)。
我们要把所有比k小的数移动到k的左面,所以我们可以开始寻找比5小的数,从j开始,从右往左找,不断递减变量j的值,我们找到第一个下标3的数据比5小,于是把数据3移到下标0的位置,把下标0的数据5移到下标3,完成第一次比较:
下标
0
1
2
3
4
数据
3
2
6
5
8
i=0 j=3 k=5
接着,开始第二次比较,这次要变成找比k大的了,而且要从前往后找了。递加变量i,发现下标2的数据是第一个比k大的,于是用下标2的数据6和j指向的下标3的数据的5做交换,数据状态变成下表:
下标
0
1
2
3
4
数据
3
2
5
6
8

称上面两次比较为一个循环。

编辑于 2018-07-11 19:56:08 回复(1)
c
发表于 2018-02-06 22:17:57 回复(0)
C不知道思路,求解
发表于 2018-01-04 20:10:15 回复(2)