友情提示:同学您好,此页面仅供预览,在此页面学习不会被统计哦! 请进入学习空间后选择课程学习。

例题1:用随机函数产生201~100之间的整数,并按升序排列。使用冒泡排序法。

排序是程序设计中的重要算法,我们先来学习冒泡排序的思想:

       冒泡排序算法:

    对于大小为n的数组a,我们先依次比较两个相邻的元素:a[1]a[2]a[2]a[3]……a[n-1]a[n],比较时将小的元素交换到前面,完成第一趟排序,这时a[n]中将存放数组元素中最大的值;然后使用相同的算法在a[1]a[n-1]之间依次进行比较交换,完成第二趟排序,这时a[n-1]中将存放数组元素中第二大的值;依次类推,经过n-1趟排序,数组元素将从小到大排列

随机数的产生:

       VB中,可使用函数Rnd(x)产生一个值介于0~1之间的单精度数,即函数Rnd(x)的返回值范围是[01)。其中函数Rnd的参数x是随即数产生因子。

       为了保证产生的是1~100之间的整数,可采用如下表达式:

       IntRnd(1)*100+1

代码如下:

Private Sub Form_Click()

  DimN(1 To 20) As Integer

  Dim R As Integer

  Dim I As Integer

  Dim J As Integer

  Print "排序前的数据为:"

  For I = 1 To 20

    N(I) = Int(Rnd(10)* 100 + 1)

    Print N(I);

  Next I

  For I = 1 To 19

    For J = 1 To 20 - I

       If N(J) > N(J + 1) Then

          R = N(J)

          N(J) = N(J + 1)

          N(J + 1) = R

       End If

   Next J

 NextI

Print

Print"排序后的数据为:"

ForI = 1 To 20

   Print N(I);

NextI

End Sub  

例题2用随机函数产生201~100之间的整数,并按升序排列。使用选择排序法。

选择排序算法:

    对于大小为n的数组a,我们先从a[1]a[2]a[n]中选出最小的元素a[k1],并将其与a[1]互换位置;而后再从a[2]a[n1]中选出最小的元素a[k2],并将其与a[2]互换位置;……;如此循环n-1次,就完成了整个数组的排序

Private Sub Form_Click()

  DimN(1 To 20) As Integer

  Dim R As Integer

  Dim I As Integer

  Dim J As Integer

  Print "排序前的数据为:"

  For I = 1 To 20

    N(I) = Int(Rnd(10)* 100 + 1)

    Print N(I);

  Next I

     ForI = 1 To 19

   For J = I + 1 To 20

      If N(I) > N(J) Then

         R = N(J)

         N(J) = N(I)

         N(I) = R

      End If

   Next J

NextI

Print

Print"排序后的数据为:"

ForI = 1 To 20

   Print N(I);

NextI

End Sub