小弟有点不懂,没多少分!!希望各位大侠进来帮忙解解思路!!很简单的

来源:百度知道 编辑:UC知道 时间:2024/06/27 04:53:22
这是源代码!是关于排序的!在四个Textbox里各输入一个数字,点击按钮进行排序!

Option Base 1
Private Sub Sort(a() As Integer)
Dim Start As Integer, Finish As Integer
Dim i As Integer, j As Integer, t As Integer
Start = LBound(a)
Finish = UBound(a)
For i = Finish To 2 Step -1
For j = 1 To i - Start
If a(j) < a(j + 1) Then
t = a(j + 1)
a(j + 1) = a(j)
a(j) = t
End If
Next j
Next i
End Sub

Private Sub Command1_Click()
Dim arr1
Dim arr2(4) As Integer
arr1 = Array(Val(Text1.Text), Val(Text2.Text), Val(Text3.Text), Val(Text4.Text))

For i = 1 To 4
arr2(i) = CInt(arr1(i))
Next i
Sort arr2()
Text1.Text = arr2(1)
Text2.Text = arr2(2)
Text3.Text = arr2(3)
Text4.Text = arr2(4)
End Sub

有点不明白的!!

过程Sort(a() As Integer)可对含任意个元素的一维数组a()的元素进行排序.start就是对数组a()的下界,finish是数组的上界,分别通过lbound 和ubound函数获得.

t = a(j + 1)
a(j + 1) = a(j)
a(j) = t
是相邻两个元素间数值的交换.

=============新近回答===========
这就是所为的冒泡法,具体原理可参见
http://zhidao.baidu.com/question/35312352.html
http://zhidao.baidu.com/question/33847498.html
......

要那么复杂吗?
Private Sub Command1_Click()
Dim arr1(1 to 4)
arr1(1) = Val(Text1.Text)
arr1(2) = Val(Text2.Text)
arr1(3) = Val(Text3.Text)
arr1(4) = Val(Text4.Text)
For i = 1 To 3
For j=1 to 4-i
if arr1(j)>arr1(j+1) then
TR=arr1(j)
arr1(j)=arr1(j+1)
arr1(j+1)=TR
end if
next j
Next i
Text1.Text = arr1(1)
Text2.Text = arr1(2)
Text3.