VB选择法的问题

看下面的代码:
Dim i(4) As Long
private Sub Form1_Click()
i(0)=0 : i(1)=1 : i(2)=2 : :i(3)=3 : I(4)=4
For a = 0 To 4
For b = a To 4
If i(a) < i(b) Then
c= i(a)
i(a)=i(b)
i(b)=c
end if
next b
debug.print i(a)
next a

这里我不明白为什么是For b = a To 4,写成For b = 0 To 4 我分析的也和那一样的啊,但结果就错了,为什么用a to 4 啊,哪位大哥大姐能帮我写下详细的循环过程啊,求...
一个人研究得好辛苦啊

从大到小,当然只与后面的比,这是个逻辑问题,呵呵。简单的说就是每个数都与后面的比,如果b也从0开始那会有很多是与前面的比较了(看**部分)。

正常的步骤:b=a to 4
a:0,b:1 i:10234
a:0,b:2 i:20134
a:0,b:3 i:30124
a:0,b:4 i:40123
a:1,b:2 i:41023
a:1,b:3 i:42013
a:1,b:4 i:43012
a:2,b:3 i:43102
a:2,b:4 i:43201
a:3,b:4 i:43210

错误的步骤:b=0 to 4
a:0,b:1 i:10234
a:0,b:2 i:20134
a:0,b:3 i:30124
a:0,b:4 i:40123 **
a:1,b:0 i:04123 **
a:2,b:1 i:01423 **
a:3,b:2 i:01243 **
a:4,b:3 i:01234 **
温馨提示:内容为网友见解,仅供参考
无其他回答

VB选择法的问题
从大到小,当然只与后面的比,这是个逻辑问题,呵呵。简单的说就是每个数都与后面的比,如果b也从0开始那会有很多是与前面的比较了(看**部分)。正常的步骤:b=a to 4 a:0,b:1 i:10234 a:0,b:2 i:20134 a:0,b:3 i:30124 a:0,b:4 i:40123 a:1,b:2 i:41023 a:1,...

VB选择法排序演示(代码太多略复杂),我这代码哪里错了,为什么
但是选择排序的核心是:将从i到末尾的最小(大)值与第i个值交换,核心是找最小(大)值所在序号p,按你的思路,一定要有关键语句:p等于i: if a(p)大于等于a(j) then p等于j,但是我找多遍都没找到,你是否在这方面多考虑一下?对不起,许多字符输入不上,只好用汉字代替,明白即可。...

vb的排序问题
1) 选择法排序 (1) 从n个数中选出最小数的下标,出了循环,将最小数与第一个数交换位置;(2) 除第一个数外,在剩下的n-1个数中再按方法(1)选出次小的数,与第二个数交换位置;(3) 以此类推,最后构成递增序列。譬如:8 6 9 3 2 7 第一轮交换后 2 6 9 3 8 7 第二轮交换后 ...

简单的VB选择法排序题,急求答案!
你可以用这样的算法:把十个数编进一个数组,然后判断数组内相邻两元素之间的大小,若前一个数大于后一个数,则不做改变;若反之,则交换两个元素的值。具体代码我就不写了吧,手机上不好打代码。反正我遇到这种东西习惯用For...next语句。

VB选择法排序 这个代码有什么问题,排不了呀
对于你的程序只要将For j = 2 To n中的2改为K+1即可 实际上不需要这么写程序:你那个K是多余的 Private Sub Command1_Click()Dim a(), i%, j%, n%, k%a = Array(12.4, 11.1, 13.4, 12.1, 12.4, 10.4, 14.4, 15.1, 15.4, 11.4)n = UBound(a)For i = 1 To ...

大家帮忙看一下,我这VB选择排序法怎么错了?
1.多个next(两个for,三个next)2.变量o没有赋初值,应该是序列c()的样本个数。

vb6.0用选择法对10个整数排列
在VB6.0中,利用选择排序算法对10个整数进行排序,具体过程如下:定义数组a(1 to 10)用于存放10个整数。定义变量maxIndex,用于存储当前未排序部分中的最大值索引。定义变量tmp,用于临时存储交换位置的值。使用两层for循环实现排序过程,外层for循环控制每一趟排序,内层for循环用于查找当前未排序部分中的...

VB选择法排序,纠结...
423817 第一次因为4大于2 所以 243817 接着2和3比较由于小于保持不动 然后2和8比较同上 2和1比较就交换143827 1和7比较保持不变 第二轮因为已经确定最小值1了所以会从第二位开始重新和第一轮类似的比较 4和3对调位置 134827 134827 124837 第三轮 123847.。。

求选择法vb程序;急
Public Sub Swap(a, b)'交换 Dim t t = a: a = b: b = t End Sub Public Sub SelectSort(a(), ByVal Left As Integer, ByVal Right As Integer)'选择排序 '基本思想是:每次选出第i小的记录,放在第i个位置。'i的起点是Left。当i=Right-1时就排完了。Dim i As Integer, j ...

vb题随机生成【0,100】10个数,选择法排序。
Dim a(10) As Integer For i = 1 To 10 a(i) = Int(101 * Rnd)Next i For i = 1 To 9 k = i For j = i + 1 To 10 If a(j) < a(k) Then k = j Next j t = a(i): a(i) = a(k): a(k) = t Next i For i = 1 To 10 Print a(i);Next i Print:...

相似回答
大家正在搜