用VB实现一维数组升序排序
1个回答
展开全部
可以考虑冒泡法:
Const n = 6 '数组长度,可自行更改
Private Sub Form_Load()
Dim f As Boolean '判断是否完成排序
Dim i As Integer, j As Integer '循环变量
Dim t As Integer '用来保存临时数据,用来完成两个数组元素的交换
Dim 结果 '用来保存排序结果
Dim a(1 To n) As Integer '定义数组
For i = 1 To n '输入数据
a(i) = InputBox("请输入第" & i & "个数据:")
Next
For i = 1 To n - 1 '开始排序
f = True '假设已经完成排序
For j = 1 To n - 1 '冒泡排序
If a(j) < a(j + 1) Then '如果前一个数据[a]小于后一个数据[b]
t = a(j) 't=前一个数据
a(j) = a(j + 1) '前一个数据=后一个数据
a(j + 1) = t '后一个数据就等于t(前一个数据)
f = False '没有完成排序,继续循环
End If
Next
If f Then '如果排序完成就...
Exit For '退出循环
End If
Next
For i = n To 1 Step -1 '利用用For循环给结果赋值
结果 = 结果 & a(i) & " " '将结果一一保存在结果变量中
Next
MsgBox "排序结束,结果是:" & vbCrLf & 结果 '输出排序结果
End '退出程序
End Sub
Const n = 6 '数组长度,可自行更改
Private Sub Form_Load()
Dim f As Boolean '判断是否完成排序
Dim i As Integer, j As Integer '循环变量
Dim t As Integer '用来保存临时数据,用来完成两个数组元素的交换
Dim 结果 '用来保存排序结果
Dim a(1 To n) As Integer '定义数组
For i = 1 To n '输入数据
a(i) = InputBox("请输入第" & i & "个数据:")
Next
For i = 1 To n - 1 '开始排序
f = True '假设已经完成排序
For j = 1 To n - 1 '冒泡排序
If a(j) < a(j + 1) Then '如果前一个数据[a]小于后一个数据[b]
t = a(j) 't=前一个数据
a(j) = a(j + 1) '前一个数据=后一个数据
a(j + 1) = t '后一个数据就等于t(前一个数据)
f = False '没有完成排序,继续循环
End If
Next
If f Then '如果排序完成就...
Exit For '退出循环
End If
Next
For i = n To 1 Step -1 '利用用For循环给结果赋值
结果 = 结果 & a(i) & " " '将结果一一保存在结果变量中
Next
MsgBox "排序结束,结果是:" & vbCrLf & 结果 '输出排序结果
End '退出程序
End Sub
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询