n=6
m=int(rnd*6+1)
for i=1 to n-m
k=i
for j=m to n-i
if a(j)>a(j+1) then
t=a(j):a(j)=a(j+1):a(j+1)=t
elseif a(j)>a(k) then
k=j
endif
next j
tmp=a(k):a(k)=a(i):a(i)=tmp
下标
0
1
2
3
4
5
数组a
5
9
3
8
1
2
k
假设第一个人 身高是最高的
j
与后面的所有 数进行比较
k=j
比它大就跳 到它的位置 上
如果要找到的是最小数的位置k呢?
下标
0
1
2
3
4
5
数组a
5
9
3
8
1
2
通过变量描述选择排序的执行过程:
i表示轮次
0 1 2 3 4
k初值
0 1 2 3 4
j表示数组下标
1、2、3、4、5 2、3、4、5 3、4、5 4、5 5
考察:m的变化与排序区域
next j
tmp=a[k):a(k)=a(i):a(i)=tmp
next i
该程序段执行后,a(1)~a(6)个元素不可能的是(
)B
A.1,3,5,6,8,9 B.3,1,5,6,8,9
C.3,8,1,5,6,9 D.3,8,9,5,1,6
7.【2019.6舟山】有如下程序段:
a=””.join(a) count=0 for i in range(len(a)-1):