1 / 6
文档名称:

VB常用算法——排序.doc

格式:doc   大小:381KB   页数:6页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

VB常用算法——排序.doc

上传人:春天笑笑 2021/12/2 文件大小:381 KB

下载得到文件列表

VB常用算法——排序.doc

相关文档

文档介绍

文档介绍:VB 常考算法(八)排序:
1、算法
1)选择法排序
算法说明: 根据上例中求最小值的思路,
我们可以使用如下方法进行从小到大排序:

一轮, 以第一个元素逐个跟后面的所有元素比较,
如果比后面的元素大就进行交换,
经过一
轮比较, 第一个元素被确定为最小;
同样的方法, 下一轮以第二个元素跟剩下的所有元素进
行比较确定下次小的元素;以此类推
下面我们以图形的形式体现对
5 个数进行选择排序的过程:
第一轮:
6
2
2
1
1
最小值
2
6
6
6
6
4
4
4
4
4
1
1
1
2
2
5
5
5
5
5
第二轮:
1
1
1
1
6
4
2
2
次小值
4
6
6
6
2
2
4
4
5
5
5
5
第三轮:
第四轮:
1
1
1
1
1
2
2
2
2
2
6
4
4
4
4
4
6
6
6
5
5
5
5
5
6
从上图可以发现对 5 个元素进行排序, 总共经过了 5-1=4 轮,而每一轮中比较的次数也
不相同,第一轮 2、 3、4、 5 号元素参与跟 1 号元素的比较,共 4 次,第二轮 3、 4、 5 号元
素参与跟 2 号元素的比较,共 3 次,以次类推,比较次数逐步减少。经过四轮的比较,利用
逐步求最小值的方法将 5 个数从小到大排好序。 对于这样一个排序的过程, 我们可以使用两
个循环分别控制比较的轮数和每一轮的次数。
程序代码:
Private Sub Command1_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);

")
Next i
For i = 1 To n - 1
For j = i To n
If a(i) > a(j) Then
temp = a(i) ' 交换元素
a(i) = a(j)
a(j) = temp
End If
Next j
Next i
Print
Print " 排序后 :"
For i = 1 To n
Print a(i);
Next i
End Sub
2)冒泡法排序