微信公众号 
图码生活

每天发布有五花八门的文章,各种有趣的知识等,期待您的订阅与参与
电脑报 1992-2001 十年文章全集
电脑报 1992-2001 十年文章全集
包含从 1992 年 - 2001 年间,两万余篇期刊文章,查询最少输入两个字符
随便看看
读取中
读取中
标题基本算法简介(三)
栏目软件世界
作者黄陀
发布2001年24期
  在统计中,我们常常需要对数据进行排序。而计算机排序涉及多种排序算法,这里就最常用的算法做一个介绍。需要说明的是,各种排序算法各有所长,同一排序算法对不同性质、类型的数列排序的效率是不同的(下面的排序算法是以从大到小排序为例)。
   冒泡排序
  如果数列乱序较多的话,这种算法效率很低。而如果乱序的数据较少,这种算法很快。
   基本原理
  检查整个数列,如果两个相邻的数乱序的话,交换这两个数,然后继续扫描,直到没有数乱序为止。
  下面是一个冒泡排序的过程实例。
  原始数据:
  7 5 3 9
  第一次发现3<9,交换3、9,数列变为:
  7 5 9 3
  第二次发现5<9,交换5、9,数列变为:
  7 9 5 3
  第三次发现7<9,交换7、9,数列变为:
  9 7 5 3。
  观察这四个数列,可以看见:9就像水中的气泡一样不断上升到最前,这就是这种排序算法名称的由来。
   Visual Basic源代码如下:
  Option Explicit
  Dim a() As Single
  Dim i, n As Integer
  Private Sub Form_Load()
  Dim temp As Single
  n = InputBox("请输入数据的个数")
  ReDim a(n) As Single '定义动态数组
  For i = 1 To n
  a(i - 1)= InputBox("请输入数据" & Str(i),Data,0)
  Next i
  10 For i = 0 To n - 1
  If a(i)< a(i + 1) Then '如果出现乱序
  '交换数据
  temp = a(i)
  a(i) = a(i + 1)
  a(i + 1)= temp
  End If
  Next i
  For i = 0 To n - 1 '检查是否仍然有乱序
  If a(i)< a(i + 1) Then GoTo 10
  Next i
  For i = 0 To n - 1
  Label1.Caption = Label1.Caption + Str(a(i)) '输出
  Next i
  End Sub
  源代码可以在http://go8.163.com/~betterprogram下载。