基本算法简介(四) 黄陀 2001年 25期 #1选择排序   选择排序的原理非常简单,就是找出最大数,然后把这个数和第一个数交换,然后找出第二大的数,再把这个数和第二个数交换……直到所有的数都排序完毕。   #2下面是选择排序的过程实例   原始数列:   5 -10 9 7   找出最大数9,与第一个数5交换,得到:   9 -10 5 7   找出第二大数7,与第二个数-10交换,得到:   9 7 5 -10   找出第三大数5,与第三个数5(本身)交换,得到:   9 7 5 -10   这种排序方法对少量数据排序很快。   代码如下。   Dim a() As Single   Dim i, j, k, l, n As Integer   Private Sub Form_Load()   Dim max, temp, minn As Single   n = InputBox(“请输入数据的个数”)   ReDim a(n) As Single   minn = 0   For i = 1 To n   a(i - 1) = InputBox(“请输入数据” & Str(i), Data, 0)   If a(i - 1)< minn Then minn = a(i - 1) '找出最小值   Next i   k = 0   Loop10: max = minn - 1 '初始化最大数   For i = k To n - 1 '从已经排序的后一个数开始排序,即从第k+1个数开始排序   If a(i) > max Then   max = a(i) '记录最大数   l = i '记录最大数的号码   End If   Next i   '交换数据   temp = a(l)   a(l) = a(k)   a(k) = temp   k = k + 1 '又排好一个   If k < n - 1 Then GoTo Loop10 '如果没有全部排好则继续排   For i = 0 To n - 1   Label1.Caption = Label1.Caption + “ ” + Str(a(i)) '输出   Next i   End Sub   源代码可以在http://go8.163.com/~betterprogram下载。