vb中冒泡排序法详解

请帮我详细解析下,我就是看不懂代码,原理我懂了,帮我解析下代码。谢谢... 请帮我详细解析下,我就是看不懂代码,原理我懂了,帮我解析下代码。谢谢 展开
 我来答
匿名用户
推荐于2018-03-13
展开全部
书上讲的是不容易理解我来给你说下比如 3,1,2,5,6,4 为例首先把数按顺序赋给数组 a(1~6) 不难吧然后给你提一点冒泡法最后一个数会确定下来第一个数,来下面:从大到小排: 1。for i = 1 to 6 2。 for j=i to 6-i 3。 if a(j)<a(j+1) then t=a(i) a(j)=a(j+1) a(j+1)=t 4。 next j 5。next i首先i=1,j=1 j=j+1 3和1比不交换 i=1 j=2 j=j+1 1和2交换 为3,2,1,5,6,4 i=1 j=3 j=j+1 1和5交换 为3,2,5,1,6,4 i=1 j=4 j=j+1 1和6交换 为3,2,5,6,1,4 i=1 j=5 j=j+1 1和4交换 为3,2,5,6,4,1 注意代码6 for j= 1 to 6-i 为什么6-i 因为最小的数 1 已经确定了,下次不需要排了。 继续反复操作 确定倒数第2个最小的,直到确定到顺数第2个,完成。 为什么是顺数第2个,因为第1个和第2个比较了,第1个就不用比了,其中一个最大一个最小。累啊```不知道表达清楚没
匿名用户
2013-04-18
展开全部
设要排序的数组为a(n)for j=1 to n-1'外循环for i= j+1 to n‘内循环if a(j)>a(i) then’分别比较第i和其后所有个元素,若第i个元素大于第j个元素则交换,相当于把最小的移到第一个,即冒泡到最上个 t=a(i)a(i)=a(j)a(j)=tnext inext jend ifnext n内循环一次保证最小的元素移到最前,下次排序只需要从第j+1个元素开始就行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
推荐于2017-06-13
展开全部
Dim i, j, intmin As Integer, n As Integer
Dim sngsq(), sngt As Single '输入原始数据
n = Val(InputBox("请输入排序的个数N的值"))
ReDim sngsq(n) '重新定义数组
Print "排序前"
For i = 1 To n
MsgBox "请输入第" & Str(i) & "个数:"
sngsq(i) = Val(InputBox("请输入")) '将输入的数据转换为数值型
Print sngsq(i);
Next
Print
Print "排序后"
'排序
For i = 1 To n - 1
intmin = i '对第i遍排序,初始假定第i个元素最小
For j = i + 1 To n '找出最小的元素序号
If sngsq(j) < sngsq(intmin) Then intmin = j
Next j
'将找出的最小元素与第i个元素交换
sngt = sngsq(i)
sngsq(i) = sngsq(intmin)
sngsq(intmin) = sngt
Next i
'打印输出
For i = 1 To n
Print sngsq(i); '不换行输出
Next i
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jia_mars
2013-05-04 · TA获得超过1387个赞
知道小有建树答主
回答量:2006
采纳率:50%
帮助的人:665万
展开全部
如果五个号码为数组元素(1)到(5),正确的排序过程:

对于i = 1至4

对于L = 1到5 - 如果A(L)(L +1)

N = A(L)

A(L),= A(L +1)

(L +1) =

结束如果下一页l

接下来,我

能够到第一台计算机来验证结果,然后分析程序。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
贵州遵义发郎中
2013-04-18 · TA获得超过3474个赞
知道大有可为答主
回答量:2865
采纳率:33%
帮助的人:1858万
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式