VB中如何给指定的数组排序??

VB中如何给指定的数组排序??,第1张

Private Sub Command4_Click()

  Dim t As clerk, i%, j%

  For i = 0 To n - 1

      For j = i To n - 2

          If a(i).vc >a(j + 1).vc Then

              t = a(i): a(i) = a(j + 1): a(j + 1) = t

          End If

      Next j

  Next i

  Picture2.Cls

  Picture2.Print "学号          姓名           VC            VB"

  Picture2.Print "---------------------------------------------"

  For i = 0 To n - 1

      Picture2.Print a(i).number, a(i).name, a(i).vc, a(i).vb

      Print

  Next i

End Sub

扩展资料

vb数组排序思路:

1、冒泡排序法:

位置相邻两数进行两两比较,在比较时如果发现前面的数比后面的数大,则进行交换,都比较完一轮后,把最大一个数放到最后,如此进行下去即可完成冒泡排序。

2、比较交换法

假设第一个数最小,然后第一个数依次与后面的每个数都进行比较, 若比较时发现后面的数比第一个数小, 则两数位置进行交换, 全部都比较完算一轮,每一轮比较完后,第一个数是最小的数,如此进行即可完成比较排序。

3、选择排序

假设第一个数最小,接着记下最小数所在的位置,然后将最小数依次与后面的每一个数都进行比较,若比较时发现后面的数比最小的数还小,则修改最小数所在位置,全部都比较完算一轮。

每一轮比较完后,最小数所在的位置是否跟假设的是同一个位置,若不是,则最小数与第一个数进行交换位置,如此进行即可完成选择排序。

冒泡排序法思路:(假设有10个数,需要从小到大排)

Dim a(10)

Randomize

For i = 1 To 10

a(i) = Int(Rnd * i + 3 + Rnd * 10) '给数组赋值

Print a(i)

Next i

Print

For i = 1 To 10 ‘

For j = i + 1 To 10

If a(j) <a(i) Then ’如果剩余的比a(i)小的话,就交换

t = a(j)

a(j) = a(i)

a(i) = t

End If

Next j

Next i

For k = 1 To 10

Print a(k) ‘打印排好的数

Next k

Print

冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。

它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。

这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/7921068.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存