VB使用升序选择排解释
随机产生10个两位数,使用选择排序将其按升序排列看不懂解释过程PrivateSubcommand1_click()Dima(1To10)AsIntegerPrintPri...
随机产生10个两位数,使用选择排序将其按升序排列
看不懂解释过程
Private Sub command1_click()
Dim a(1 To 10) As Integer
Print
Print "原数列是"
Randomize
For i = 1 To 10
a(i) = Int(Rnd * 90 + 10)
Print a(i); " ";
Next i
For i = 1 To 9
k = i
For j = i + 1 To 10
If a(k) > a(j) Then k = j
Next j
If k <> i Then
t = a(i)
a(i) = a(k)
a(k) = t
End If
Next i
Print
Print "排序后的数列是:"
For i = 1 To 10
Print a(i); " ";
Next i
End Sub 展开
看不懂解释过程
Private Sub command1_click()
Dim a(1 To 10) As Integer
Print "原数列是"
Randomize
For i = 1 To 10
a(i) = Int(Rnd * 90 + 10)
Print a(i); " ";
Next i
For i = 1 To 9
k = i
For j = i + 1 To 10
If a(k) > a(j) Then k = j
Next j
If k <> i Then
t = a(i)
a(i) = a(k)
a(k) = t
End If
Next i
Print "排序后的数列是:"
For i = 1 To 10
Print a(i); " ";
Next i
End Sub 展开
展开全部
前面和后面应该都看得懂吧,重点在排序这一部分代码:
for i=2 to 10
k=a(i)
for j=i-1 to 1 step-1
if k<a(j) then a(j+1)=a(j) else exit for
next j
a(j+1)=k
next i
i=2从数组的第二个元素开始,比较i之前的数字,如果有比a(i)小的,则做一个交换。就这样一个方法;
比如数组 4 3 2 1
第一次排序,发现3比4小,交换下,变成3 4 2 1
第二次排序,2再与 它前面的3 4比较,首先与3比较,2 比较小,排序是2 4 3 1
再次3又与4比较,3 比较小,排序2 3 4 1
第三次排序,1与它之前的2 3 4比较,
首先1比2小,排序后是1 3 4 2
再次2比3小,排序后是1 2 4 3
再次3比4小,排序后是1 2 3 4
就可以了。如果能看明白4 3 2 1的排序过程,就不难理解上述排序过程了。
for i=2 to 10
k=a(i)
for j=i-1 to 1 step-1
if k<a(j) then a(j+1)=a(j) else exit for
next j
a(j+1)=k
next i
i=2从数组的第二个元素开始,比较i之前的数字,如果有比a(i)小的,则做一个交换。就这样一个方法;
比如数组 4 3 2 1
第一次排序,发现3比4小,交换下,变成3 4 2 1
第二次排序,2再与 它前面的3 4比较,首先与3比较,2 比较小,排序是2 4 3 1
再次3又与4比较,3 比较小,排序2 3 4 1
第三次排序,1与它之前的2 3 4比较,
首先1比2小,排序后是1 3 4 2
再次2比3小,排序后是1 2 4 3
再次3比4小,排序后是1 2 3 4
就可以了。如果能看明白4 3 2 1的排序过程,就不难理解上述排序过程了。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
ZESTRON
2024-09-04 广告
2024-09-04 广告
在Dr. O.K. Wack Chemie GmbH,我们高度重视ZESTRON的表界面分析技术。该技术通过深入研究材料表面与界面的性质,为提升产品质量与可靠性提供了有力支持。ZESTRON的表界面分析不仅涵盖了相变化、化学反应、吸附与解吸...
点击进入详情页
本回答由ZESTRON提供
展开全部
private sub command1_click()
'定义数组存储10个两位数-------------
dim a(1 to 10)as integer
print
print "原数列是"
'产生10个两位随机数,并存入数组------
randomize
for i=1 to 10
a(i)=int(rnd*90+10)
print a(i);" ";
next i
'排序----------------
for i=2 to 10
k=a(i)
for j=i-1 to 1 step-1
if k<a(j) then a(j+1)=a(j) else exit for'主要排序方法,数组元素小于后面,则互换
next j
a(j+1)=k
next i
'输出排序后的值
print
print "排列后的数列是:"
for i=1 to 10
print a(i);" ";
next i
end sub
'定义数组存储10个两位数-------------
dim a(1 to 10)as integer
print "原数列是"
'产生10个两位随机数,并存入数组------
randomize
for i=1 to 10
a(i)=int(rnd*90+10)
print a(i);" ";
next i
'排序----------------
for i=2 to 10
k=a(i)
for j=i-1 to 1 step-1
if k<a(j) then a(j+1)=a(j) else exit for'主要排序方法,数组元素小于后面,则互换
next j
a(j+1)=k
next i
'输出排序后的值
print "排列后的数列是:"
for i=1 to 10
print a(i);" ";
next i
end sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询