vb冒泡排序代码(VB中,随机产生10个0~100之间的随机数,按从小到大的顺序排列怎么做)

本文目录
- VB中,随机产生10个0~100之间的随机数,按从小到大的顺序排列怎么做
- VB的排序法的代码
- VB中如何给指定的数组排序
- vb编程 产生10个50-100(包括50和100)的随机整数,并用“冒泡排序”按从小到大的顺序输出
- VB 从键盘上输入10个整数,用冒泡排序法对这10个数从小到大排序
- 急!怎样用VB程序来表示冒泡排序(从1排到10)
- vb怎么按“冒泡排序”按钮实现从小到大排序,并输出在个文本框中
- 这道VB代码怎么写
VB中,随机产生10个0~100之间的随机数,按从小到大的顺序排列怎么做
可用冒泡排序法:
代码如下:
’不重复随机数排序
’添加 Command1 Command2 Command3Option Explicit Dim i&, j&, k&, t&, Trec&, Arr&(), RndVal&, TmpVal&, S Private Sub Form_Load()
Command1.Caption = "选随机数"
Command2.Caption = "小到大排序"
Command3.Caption = "大到小排序"
’*************************************** 安排控件摆放位置
Me.Move (Screen.Width - Me.Width) \ 2, (Screen.Height - Me.Height) \ 2
1 - 100 之间选 20 个随机数
Trec = 10 End Sub Private Sub Command1_Click() S = GetRnd(1, 100, Trec) Me.Cls
For i = 0 To Trec - 1 Print S(i) Next i End Sub Private Sub Command2_Click()
’********************** 由小排到大(冒泡排序法)
Me.Cls For i = 0 To Trec - 1 k = i For j = i + 1 To Trec - 1 If Arr(k) 》 Arr(j) Then k = j
Next j t = Arr(i): Arr(i) = Arr(k): Arr(k) = t Print Arr(i) Next i
End Sub Private Sub Command3_Click()
’********************** 由大排到小(冒泡排序法)
Me.Cls For i = 0 To Trec - 1 k = i For j = i + 1 To Trec - 1 If Arr(k) 《 Arr(j) Then k = j
Next j t = Arr(i): Arr(i) = Arr(k): Arr(k) = t Print Arr(i) Next i End Sub Public Function GetRnd(MinVal&, MaxVal&, Qty&) As Long() Randomize For i = MinVal To MaxVal
ReDim Preserve Arr&(i) Arr(i) = i Next For i = MinVal To MaxVal
RndVal = Int(Rnd * (MaxVal - MinVal + 1)) + MinVal TmpVal = Arr(i)= Arr(RndVal)
Arr(RndVal) = TmpVal Next For i = 0 To Qty - 1 Arr(i) = Arr(i + MinVal) Next GetRnd = Arr()
End Function
VB的排序法的代码
排序的各类很多,最简单的冒泡排序代码如下:
Private Sub Command1_Click()
Dim a(), i As Integer, j As Integer, tmp As Integer
a = Array(1, 3, 2, 5, 4, 6, 9, 7, 8, 0)
Print Join(a, ",")
For i = 0 To UBound(a)
For j = i + 1 To UBound(a)
If a(j) 《 a(i) Then
tmp = a(j)
a(j) = a(i)
a(i) = tmp
End If
Next
Next
Print Join(a, ",")
End Sub
VB中如何给指定的数组排序
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
Next i
End Sub
扩展资料
vb数组排序思路:
1、冒泡排序法:
位置相邻两数进行两两比较,在比较时如果发现前面的数比后面的数大,则进行交换,都比较完一轮后,把最大一个数放到最后,如此进行下去即可完成冒泡排序。
2、比较交换法
假设第一个数最小,然后第一个数依次与后面的每个数都进行比较, 若比较时发现后面的数比第一个数小, 则两数位置进行交换, 全部都比较完算一轮,每一轮比较完后,第一个数是最小的数,如此进行即可完成比较排序。
3、选择排序
假设第一个数最小,接着记下最小数所在的位置,然后将最小数依次与后面的每一个数都进行比较,若比较时发现后面的数比最小的数还小,则修改最小数所在位置,全部都比较完算一轮。
每一轮比较完后,最小数所在的位置是否跟假设的是同一个位置,若不是,则最小数与第一个数进行交换位置,如此进行即可完成选择排序。
vb编程 产生10个50-100(包括50和100)的随机整数,并用“冒泡排序”按从小到大的顺序输出
Private Sub Command1_Click()
Dim a(1 To 10) As Integer
Dim i As Integer, j As Integer
Print "随机取到的10个50-100(包括50和100)的随机整数为"
For i = 1 To 10
Randomize
a(i) = Int(Rnd() * 51 + 50)
Print a(i);
Next i
Print "用“冒泡排序”按从小到大的顺序排序后"
For i = 1 To 10
For j = 1 To 10 - i
If a(j) 》 a(j + 1) Then
t = a(j)
a(j) = a(j + 1)
a(j + 1) = t
End If
Next j
Next i
For i = 1 To 10
Print a(i);
Next i
End Sub
VB 从键盘上输入10个整数,用冒泡排序法对这10个数从小到大排序
Private Sub Command1_Click()
Dim a(10) As Integer
For i = 1 To 10
a(i) = InputBox("请输入" & i & "的数字")
Print a(i);
Next i
Print
For i = 1 To 10
For j = 1 To 10 - i
If a(j) 》 a(j + 1) Then
temp = a(j + 1)
a(j + 1) = a(j)
a(j) = temp
End If
Next j
Next i
For i = 1 To 10
Print a(i);
Next i
End Sub
急!怎样用VB程序来表示冒泡排序(从1排到10)
在VB中演示过程冒泡法排序
要求把代码输入后能直接在VB环境中运行
在窗体中添加三个标签,一个按钮,一个框架在框架中添加一个文本框
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
If KeyCode 《 48 Or KeyCode 》 57 And KeyCode 《 96 Or KeyCode 》 150 And KeyCode 《》 109 And _
KeyCode 《》 189 Then Text1 = ""
End Sub
Private Sub Form_Load()
Label1(0).Visible = False
Label1(0).Alignment = 2
Label1(0).Top = 100
Label1(0).Left = 100
Label1(0).Height = 300
Label1(0).Width = 800
Label1(0).BackColor = QBColor(15)
Label1(0).FontSize = 12
Caption = "演示“起泡法”从小到大的排序过程"
Top = 0
Left = 200
Width = 2 * Label1(0).Left + 12 * (Label1(0).Width + 100)
Height = 7000
Label2.Top = 5700
Label2.Left = 500
Label2.FontSize = 12
Label2.Width = Width - 2 * Label2.Left
Label2.WordWrap = True
Label2.AutoSize = True
a = Space(4) & "数从文本输入,每输完一个数后,按回车键,数的个数可变.排序开始之前所有"
a = a & "所有的数都是白底黑字).单击“开始”按钮,开始比较(红底)数与(黄底)数"
a = a & "若(红底)数大就交换两数的位置;否则,两数仍保持原位置.位置已确定不变的数为"
Label2 = a & "(底黑字)."
Label3 = ""
Label3.FontSize = 15
Label3.Top = Label2.Top - 500
Label3.Left = 1300
Label3.AutoSize = True
Frame1.Top = Height - 2300
Frame1.Left = Width / 3
Frame1.Width = 2300
Frame1.Height = 850
Frame1.Caption = "输入-32768到32767的数"
Text1.Top = 300
Text1.Left = 500
Text1.Height = 370
Text1.Width = 1450
Text1.FontSize = 14
Text1.MaxLength = 6
Text1 = ""
Command1.Top = Frame1.Top + 200
Command1.Left = Frame1.Left + Frame1.Width + 100
Command1.Caption = "开始排序"
Command1.Enabled = False
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
Static kx As Byte, ky As Byte
If KeyAscii = 13 Then
If Text1 《》 "" Then
x = Val(Text1)
If x 》= -32768 And x 《= 32767 Then
If n = 0 Then
Label1(0) = x: Label1(0).Visible = True
Else
Load Label1(n): Label1(n) = x
Label1(n).Visible = True
kx = kx + 1
If kx Mod 12 = 0 Then ky = ky + 1: kx = 0
Label1(n).Left = Label1(0).Left + kx * (Label1(0).Width + 100)
Label1(n).Top = Label1(0).Top + ky * (Label1(0).Height + 100)
Command1.Enabled = True
End If
Text1 = "": n = n + 1
End If
End If
End If
End Sub
vb怎么按“冒泡排序”按钮实现从小到大排序,并输出在个文本框中
For i = 1 To 10
For j = 1 To 10 - i
If a(j) 》 a(j + 1) Then
temp = a(j + 1)
a(j + 1) = a(j)
a(j) = temp
End If
Next j
Next i
上面是冒泡排序法
这道VB代码怎么写
这个程序是并不难的。已经作过相关题目的解答了的。
Dim a(40) As Integer
Private Sub Command2_Click()
Dim b(40) As Integer
Print "冒泡排序法排序后:"
For i = 1 To 40
b(i) = a(i)
Next i
For i = 1 To 39
For j = 1 To 40 - i
If b(j) 》 b(j + 1) Then
t = b(j): b(j) = b(j + 1): b(j + 1) = t
End If
Next j
Next i
For i = 1 To 40
Print b(i);
If i Mod 8 = 0 Then Print
Next i
End Sub
Private Sub Command1_Click()
Dim c(40) As Integer
Print "选择泡排序法排序后:"
For i = 1 To 40
c(i) = a(i)
Next i
For i = 1 To 39
k = i
For j = i + 1 To 40
If c(j) 》 c(k) Then k = j
Next j
t = c(i): c(i) = c(k): c(k) = t
Next i
For i = 1 To 40
Print c(i);
If i Mod 8 = 0 Then Print
Next i
End Sub
Private Sub Form_Click()
Print "初始数据为:"
For i = 1 To 40
a(i) = Rnd * 90 + 10
Print a(i);
If i Mod 8 = 0 Then Print
Next i
End Sub

更多文章:
setint(PreparedStatement setString与setInt效果是否一样)
2026年7月20日 22:15
spring用英语怎么说(spring怎么读英语 spring英文解释)
2026年2月23日 15:30
property prices(spillover effect是什么意思)
2026年9月23日 18:00
update的过去式和过去分词(Update翻译成汉语是什么意思)
2025年8月29日 13:00
学生eclipse安装教程(哪位大神可以手把手教我怎么在eclipse中安装PHP啊,我是学生,刚刚开始学习,不会装呀..)
2026年7月2日 16:30
进制转换器代码(C语言,使用数组,编写一个十进制正整数转换为二进制数的转换工具)
2025年10月4日 05:30
idea写的代码eclipse能用吗(怎么把Intelij IDEA的工程变为Eclipse工程,希望有人解答)
2025年6月9日 15:00
易语言源代码及模块大全1500(求一个小工具的易语言源代码 悬赏100分)
2026年1月17日 23:15
mmap的实现原理(Android跨进程通信-mmap函数)
2026年5月3日 00:15













