求助,关于VB冒泡法之for循环原理?麻烦大佬看看

Private Sub Form_Click()Dim a(1 To 5) As LongDim i, j, z As Long For i = 1 To 5 a(i) = InputBox("请输入") Next i For i = 5 To 1 Step -1 '解释这个二重循环? For j = 1 To i - 1 If a(j) > a(j + 1) Then t = a(j + 1) a(j + 1) = a(j) a(j) = t End If Next j Next i For i = 1 To 5 Print a(i); " "; Next iEnd Sub1、二重循环中的外层为什么要终值到初值然后要步长-1这样做的目的?2、内层循环中为什么要初值到外层-1是什么意思。目的又是什么?

慕神8447489
浏览 239回答 1
1回答

泛舟湖上清波郎朗

先弄清冒泡法求解的方式。每次循环后冒出一个最大值,假设第一次循环时i=5,程序循环比较5次,找出最大值,第一次循环后这个最大值存入a(5),此时i=5-1,而内层循环中j表示的是数组a(j)的存储地址,每次循环比较的是a(j)和a(j+1)里面的值,每比较一次j指向的地址就+1。a()数组一共只能存储5个数据,所以1<=j<=5;另外再补充一下,forj=1toi-1;没什么-1这个意思,也许这个才是问题的根本,这句的意思是这个for语句里面的程序循环执行i-1次,这个是内部循环,每完成一次内部循环i的值比上次少1,所以每次内循环就会少一次,冒泡法的算法思想就是每次冒一个数出来.
打开App,查看更多内容
随时随地看视频慕课网APP