- -
VB 常考算法〔八〕排序:
1、算法
1〕选择法排序
算法说明:根据上例中求最小值的思路,我们可以使用如下方法进展从小到大排序:
第一轮,以第一个元素逐个跟后面的所有元素比拟,如果比后面的元素大就进展交换,经
过一轮比拟,第一个元素被确定为最小;同样的方法,下一轮以第二个元素跟剩下的所有
元素进展比拟确定下次小的元素;以此类推…
下面我们以图形的形式表达对 5 个数进展选择排序的过程:
第一轮:
第二轮:
第三轮: 第四轮:
从上图可以发现对 5 个元素进展排序,总共经过了 5-1=4 轮,而每一轮中比拟的次数
也不一样,第一轮 2、3、4、5 号元素参与跟 1 号元素的比拟,共 4 次,第二轮 3、4、5
号元素参与跟 2 号元素的比拟,共 3 次,以次类推,比拟次数逐步减少。经过四轮的比拟,
利用逐步求最小值的方法将 5 个数从小到大排好序。对于这样一个排序的过程,我们可以
使用两个循环分别控制比拟的轮数和每一轮的次数。
程序代码:
Private Sub mand1_Click()
Dim n As Integer
n = InputBox("请输入数组元素的个数:")
Dim a() As Integer, i As Integer, j As Integer
Print "排序前:"
ReDim a(n)
For i = 1 To n
a(i) = Int(Rnd * (99 - 10 + 1) + 10)
Print a(i);
- word.zl-
6
2
4
1
5
2
6
4
1
5
2
6
4
1
5
1
6
4
2
5
最小值
1
6
4
2
5
1
6
4
2
5
1
4
6
2
5
1
2
6
4
5
1
2
6
4
5
次小值
1
2
6
4
5
1
2
4
6
5
1
2
4
6
5
1
2
4
6
5
1
2
4
5
6