给你一个我编制的排序模块罢Sub BubbleSort(List() As Long, Number As Long, DataCount As Long, SmallToBig As Boolean) '/蒋玉龙于2003-03-08晚0:36编制,数组排序功能/'传递过来的数组,共2维,N组数据//根据第Number个数据信息排序//总共DataCount个数据信息 '例如:X(N,4)→共N组数据,每组4个数据信息,分为/N,0/N,1/N,2/N,4/ Dim First As Long, Last As Long Dim ii As Long, JJ As Long, KK As Long '定义一个可以保存一维多数据的临时变量 Dim Temp() As Long ReDim Temp(DataCount) '*********************************************************** '调用方法 'Dim List(0 To 3, 0 To 2) As Long 'Dim II As Long ' 'List(0, 0) = 15 'List(0, 1) = 23 →用做排序 'List(0, 2) = 62 ' 'List(1, 0) = 43 'List(1, 1) = 53 →用做排序 'List(1, 2) = 34 ' 'List(2, 0) = 46 'List(2, 1) = 231→用做排序 'List(2, 2) = 34 ' 'List(3, 0) = 12 'List(3, 1) = 13 →用做排序 'List(3, 2) = 22 ' 'BubbleSort List(), 2, 3, False '按照第2个信息排序,总共每维3组数据,从大到小 '*************************************************************** First = LBound(List, 1) '取得数组第1维上界 Last = UBound(List, 1) '取得数组第1维下界——判断出来有多少数据 'II是负责循环数据个数[维数],JJ是内层循环 For ii = First To Last - 1 '冒泡排序法 For JJ = ii + 1 To Last If SmallToBig = True Then '从小到大 If List(ii, Number - 1) > List(JJ, Number - 1) Then '记录第JJ个数据 For KK = 0 To DataCount - 1 Temp(KK) = List(JJ, KK) Next For KK = 0 To DataCount - 1 List(JJ, KK) = List(ii, KK) Next '恢复数据 For KK = 0 To DataCount - 1 List(ii, KK) = Temp(KK) Next End If Else '从大到小 If List(ii, Number - 1) < List(JJ, Number - 1) Then '记录第JJ个数据 For KK = 0 To DataCount - 1 Temp(KK) = List(JJ, KK) Next For KK = 0 To DataCount - 1 List(JJ, KK) = List(ii, KK) Next '恢复数据 For KK = 0 To DataCount - 1 List(ii, KK) = Temp(KK) Next End If End If Next Next End Sub
Option Explicit Dim i As Long, j As Long, t As LongDim a(10) As TextBox Private Sub Form_Activate() Randomize For i = 0 To 10 Set a(i) = Text1(i) a(i).Text = Int(Rnd * 199) - 99 a(i).BackColor = RGB(255, 255, 255) Next i Command1.Enabled = True Frame1.Height = 1980 End Sub Private Sub Command1_Click() Command1.Enabled = False For i = 1 To 9 Label2.Caption = " 从A(1)到A(" & Trim(11 - i) & _ "),将相连两数进行比较,并将小者置前,A(" + Trim(11 - i) & _ "),将为A(1)至A(" & Trim(11 - i) & ")中的最大者。“" For j = 1 To 10 - i a(j).BackColor = RGB(225, 0, 225): a(j + 1).BackColor = RGB(225, 0, 225) If Val(a(j).Text) > Val(a(j + 1).Text) Then MsgBox "交换A(" & Trim(j) & ")和A(" & Trim(j + 1) & ")", , "A(" & Trim(j) & ")>A(" & Trim(j + 1) & ")" t = a(j).Text: a(j).Text = a(j + 1).Text: a(j + 1).Text = t End If a(j).BackColor = RGB(225, 0, 225) Next j a(j).BackColor = RGB(0, 225, 0) Next i a(1).BackColor = RGB(0, 225, 0) Label2.Caption = " " Frame1.Height = 1000 End Sub Private Sub Command2_Click() Form_Activate End Sub 上面的调试运行成功,结果也很正确
for c=0 to 8 for a=0 to 8-c if val(text1(a))>val(text1(a+1)) then 'text1为一控件数组,也就是10个文本框 temp1=text1(a) text1(a)=text1(a+1) text1(a+1)=temp1 end if next a next cfor b=1 to 9 text1(0)=text1(0) & " " & text1(b) next bmsgbox text1(0)
{
int i,j,k,temp;
int a[]={23,13,1,2,3,4,5,6,76,33};
for(i=0;i<9;i++)
for(j=i+1;j<10;j++) {
k=i;
if(a[k]>a[j])
k=j;
}
if(k!=i) {
temp=a[i];
a[i]=a[k];
a[k]=temp;
}
}
随便写了个C的,basic的自己写吧。
可能有些小错误,思路就这样。
'/蒋玉龙于2003-03-08晚0:36编制,数组排序功能/'传递过来的数组,共2维,N组数据//根据第Number个数据信息排序//总共DataCount个数据信息
'例如:X(N,4)→共N组数据,每组4个数据信息,分为/N,0/N,1/N,2/N,4/
Dim First As Long, Last As Long
Dim ii As Long, JJ As Long, KK As Long
'定义一个可以保存一维多数据的临时变量
Dim Temp() As Long
ReDim Temp(DataCount)
'***********************************************************
'调用方法
'Dim List(0 To 3, 0 To 2) As Long
'Dim II As Long
'
'List(0, 0) = 15
'List(0, 1) = 23 →用做排序
'List(0, 2) = 62
'
'List(1, 0) = 43
'List(1, 1) = 53 →用做排序
'List(1, 2) = 34
'
'List(2, 0) = 46
'List(2, 1) = 231→用做排序
'List(2, 2) = 34
'
'List(3, 0) = 12
'List(3, 1) = 13 →用做排序
'List(3, 2) = 22
'
'BubbleSort List(), 2, 3, False
'按照第2个信息排序,总共每维3组数据,从大到小
'***************************************************************
First = LBound(List, 1) '取得数组第1维上界
Last = UBound(List, 1) '取得数组第1维下界——判断出来有多少数据
'II是负责循环数据个数[维数],JJ是内层循环
For ii = First To Last - 1 '冒泡排序法
For JJ = ii + 1 To Last
If SmallToBig = True Then '从小到大
If List(ii, Number - 1) > List(JJ, Number - 1) Then
'记录第JJ个数据
For KK = 0 To DataCount - 1
Temp(KK) = List(JJ, KK)
Next
For KK = 0 To DataCount - 1
List(JJ, KK) = List(ii, KK)
Next
'恢复数据
For KK = 0 To DataCount - 1
List(ii, KK) = Temp(KK)
Next
End If
Else '从大到小
If List(ii, Number - 1) < List(JJ, Number - 1) Then
'记录第JJ个数据
For KK = 0 To DataCount - 1
Temp(KK) = List(JJ, KK)
Next
For KK = 0 To DataCount - 1
List(JJ, KK) = List(ii, KK)
Next
'恢复数据
For KK = 0 To DataCount - 1
List(ii, KK) = Temp(KK)
Next
End If
End If
Next
Next
End Sub
Dim i As Long, j As Long, t As LongDim a(10) As TextBox
Private Sub Form_Activate()
Randomize
For i = 0 To 10
Set a(i) = Text1(i)
a(i).Text = Int(Rnd * 199) - 99
a(i).BackColor = RGB(255, 255, 255)
Next i
Command1.Enabled = True
Frame1.Height = 1980
End Sub
Private Sub Command1_Click()
Command1.Enabled = False
For i = 1 To 9
Label2.Caption = " 从A(1)到A(" & Trim(11 - i) & _
"),将相连两数进行比较,并将小者置前,A(" + Trim(11 - i) & _
"),将为A(1)至A(" & Trim(11 - i) & ")中的最大者。“"
For j = 1 To 10 - i
a(j).BackColor = RGB(225, 0, 225): a(j + 1).BackColor = RGB(225, 0, 225)
If Val(a(j).Text) > Val(a(j + 1).Text) Then
MsgBox "交换A(" & Trim(j) & ")和A(" & Trim(j + 1) & ")", , "A(" & Trim(j) & ")>A(" & Trim(j + 1) & ")"
t = a(j).Text: a(j).Text = a(j + 1).Text: a(j + 1).Text = t
End If
a(j).BackColor = RGB(225, 0, 225)
Next j
a(j).BackColor = RGB(0, 225, 0)
Next i
a(1).BackColor = RGB(0, 225, 0)
Label2.Caption = " "
Frame1.Height = 1000
End Sub
Private Sub Command2_Click()
Form_Activate
End Sub
上面的调试运行成功,结果也很正确
for c=0 to 8
for a=0 to 8-c
if val(text1(a))>val(text1(a+1)) then
'text1为一控件数组,也就是10个文本框
temp1=text1(a)
text1(a)=text1(a+1)
text1(a+1)=temp1
end if
next a
next cfor b=1 to 9
text1(0)=text1(0) & " " & text1(b)
next bmsgbox text1(0)
'对不起,放一点广告,对您带来的不便敬请原谅!
广告:我的第一个Visual Basic 6.0作品,欢迎大家试用,注册用户得到全部源代码。 EasyDialog能够做什么?
(为了增强Windows通用打开/保存对话框,能够快速的打开经常访问的文件夹或者文件)
一、快速地在通用打开/保存对话框中打开你经常访问的文件夹/文件。
二、快速地在Windows Explorer中打开经常访问的文件夹/文件。
三、快速地在IE浏览器打开你经常访问的网站。
四、快速地给你的朋友发Email
五、能够使您方便地按照逻辑分类来组织和管理您的文件夹/文件,您经常访问的网址,您的Email地址。'********************************************
'*下载EasyDialog:
http://www.softboyzhou.com/download/EasyDialog.asp
'***************
'*购买EasyDialog:
http://www.softreg.com.cn/shareware_view.asp?id=/7148D197-1C1D-4E84-B92A-EE2CC07D27C0/
'***************
'*给我写信:有什么问题请来信。
[email protected]