求助~VB中用自定义函数对数组排序并输出结果
例如数组dim m(0 to 19) as integerfor 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 , 基础类