VB高手再来解释随机两位数选择排序

VB高手再来解释随机两位数选择排序

前面和后面应该都看得懂吧,重点在排序这一部分代码:

for i=2 to 10

k=a(i)

for j=i-1 to 1 step-1

if k<a(j) then a(j+1)=a(j) else exit for

next j

a(j+1)=k

next i

i=2从数组的第二个元素开始,比较i之前的数字,如果有比a(i)小的,则做一个交换。

就这样一个方法;

比如数组 4 3 2 1

第一次排序,发现3比4小,交换下,变成3 4 2 1

第二次排序,2再与 它前面的3 4比较,首先与3比较,2 比较小,排序是2 4 3 1

再次3又与4比较,3 比较小,排序2 3 4 1

第三次排序,1与它之前的2 3 4比较,

首先1比2小,排序后是1 3 4 2

再次2比3小,排序后是1 2 4 3

再次3比4小,排序后是1 2 3 4

就可以了。

如果能看明白4 3 2 1的排序过程,就不难理解上述排序过程了。

首页