微信公众号 
图码生活

每天发布有五花八门的文章,各种有趣的知识等,期待您的订阅与参与
电脑报 1992-2001 十年文章全集
电脑报 1992-2001 十年文章全集
包含从 1992 年 - 2001 年间,两万余篇期刊文章,查询最少输入两个字符
随便看看
读取中
读取中
标题基本算法简介(四)
栏目软件世界
作者黄陀
发布2001年25期
  选择排序
  选择排序的原理非常简单,就是找出最大数,然后把这个数和第一个数交换,然后找出第二大的数,再把这个数和第二个数交换……直到所有的数都排序完毕。
   下面是选择排序的过程实例
  原始数列:
  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下载。