小明的班级有8个同学,每个人身上贴了一个不同的数字,
现在要举办一场”快速排序比赛“,规则如下:
(1)设置两个变量i, j,排序开始时,i=0,j=N-1 。 (2)以第一个元素作为关键数据,将其赋值给key, 即key = A[0] 。 (3)从j开始向前搜索,即由后向前搜索(j--), 找到第一个小于key的值A[j],将A[j]与A[i]交换。 (4)从i开始向后搜索,即由前向后搜索(i++),找到第一个大于key的值A[i], 将A[i]与A[j]交换。 (5)重复第(3),(4)步骤,直到i==j; (6)分成的前后两组数据,分别再按(1)~(5)递归排序,直到全部数据有序排列。 初始队伍顺序:[5, 3, 9, 1, 7, 2, 8, 6]
请问如果第一趟快速排序后,分组结果是什么?( )
| A. 前面[2, 3, 1], 后面[9, 7 , 8, 6] |
B. 前面[1, 2, 3], 后面[7, 9, 8, 6] |
| C. 前面[2, 3, 1], 后面[7, 9, 8, 6] |
D. 前面[2, 1, 3], 后面[9, 7, 8, 6] |
相似题推荐
一个人赶着鸭子,每经过一个村子,他卖去所赶鸭子的一半又一只,这样在经过了七个村子后,还剩两只鸭子,问他出发时共赶多少只鸭子。用递归函数F(n)求解,F为经过n个村子后鸭子的数量,n为第n个村子,则递归公式应该表示为?( )
| A. F(n)=(F(n+1)+1)*2 |
B. F(n)=(F(n-1)+1)*2 |
| C. F(n)=(F(n+1)+2)*2 |
D. F(n)=(F(n-1)+2)*2 |
在Python程序中,想要使用math库中的sqrt函数,下列哪种导入方式是错误的?( )
| A. import math 然后使用math.sqrt(4) |
B. from math import sqrt 然后使用sqrt(4) |
| C. import sqrt from math 然后使用sqrt(4) |
D. from math import * 然后使用sqrt(4) |
关于Python函数的描述,以下哪一项是正确的?( )
| A. 函数定义时,必须使用return语句返回一个值 |
B. 函数内部定义的变量,在函数外部可以直接访问和修改 |
| C. 使用lambda关键字定义的匿名函数,其函数体必须是一个表达式 |
D. 调用help()函数可以查看所有内置函数的源代码 |
用递归方法计算列表 [a1, a2, ..., an] 中所有元素的乘积,边界条件(递归出口)最合适的描述应该是什么?( )
| A. 当列表长度为0时,返回0 |
B. 当列表长度为1时,返回该元素 |
| C. 当列表长度为2时,返回两元素之和 |
D. 当列表长度为0时,返回1 |
