当前位置:编程学习 > VB >>

求助~VB中用自定义函数对数组排序并输出结果

例如数组dim m(0 to 19) as integer
for i=0to19
a(i)=int(rnd*101)
next i对这个数组排序并输出…求大神帮忙啊… --------------------编程问答-------------------- 排序方法有好多,你不会一个都不会吧 --------------------编程问答-------------------- 排序懂的…不过这用自定义函数并输出数组就茫然了… --------------------编程问答-------------------- 上个冒泡的:
'====================================================
'函数: 1.Swap  2.SmallFirst    3.Sort

'函数名:   Swap
'作用:     交换两数

'函数名:   SmallFirst
'作用:     交换两数使较小的数字在前

'函数名:   Sort
'作用:     冒泡排序


'注意:      因为要改变原变量的值,所以不能用 ByVal !

'=====================================================
Sub Swap(ByRef a, ByRef b)     '交换两数
    c = a
   a = b
   b = c
End Sub

Sub SmallFirst(ByRef a, ByRef b)    '交换两数使较小的数字在前
   If a > b Then Swap a, b
End Sub

Sub Sort(ByRef Numbers())        '冒泡排序
c = UBound(Numbers, 1)
For i = 1 To c - 1
    For j = 0 To c - 2
        SmallFirst Numbers(j), Numbers(j + 1)
    Next j
Next i
End Sub
--------------------编程问答-------------------- 不论是冒泡还是其他常见算法,都不是好算法。
事实上一个循环就解决了。

鉴于论坛近期氛围有点问题,这个超级无敌速度的排序方法,我就不介绍了。免得又被人“鄙视”。因为实在太简单了,简单到你想不到,看着别人作出来,很容易羡慕嫉妒恨。 --------------------编程问答-------------------- 来个数组的:
Dim a(0 To 19) As Integer
For i = 0 To 19
    a(i) = Int(Rnd * 101)
Next i

Dim b(110) As Integer
For i = 0 To UBound(a)
    b(a(i)) = b(a(i)) + 1
Next i

k = 0
For i = 0 To UBound(b)
    For j = 1 To b(i)
        a(k) = i
        k = k + 1
    Next j
Next i

'a():已排序数组

补充:VB ,  基础类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,