VB里 我给出10个数进行大小排列。但是我现在只做到了10个数选出最大的数求大神帮我详解接下来我该怎么做

 我来答
willenhu
2013-09-15 · TA获得超过1771个赞
知道小有建树答主
回答量:865
采纳率:66%
帮助的人:245万
展开全部
我给你推荐一种简单的交换排序法。
如果如下为数据列arr(6)={A,B,C,D,E,F}(用字母代替,方便叙述)
从第一个数开始往下循环比较,总是将大的数替换到前面的位置,从大到小排序流程如下:
(1)arr(0)跟其余所有的数据挨个比较,把大的数换到arr(0),
arr(0)跟arr(1)比较,如果arr(0)>=arr(1),则进行下一个比较,如果arr(0)<arr(1)则将arr(0)和arr(1)互换;
arr(0)跟arr(2)比较,如果arr(0)>=arr(2),则进行下一个比较,如果arr(0)<arr(2)则将arr(0)和arr(2)互换;
....
直到比较完所有的数,此时arr(0)是最大的数了。
(2)arr(1)跟余下的数挨个比较,把大的数换到arr(1),最后第二大数就被换到arr(1)
....
(3)一直比较到arr(最后一位)
得到的数列就为一个从大到小的数列。
具体代码如下
dim arr()= new integer()={12,33,22,19,47,65,99}定义源数组
dim i,j as integer定义循环变量
dim count as long定义数组个数
count = Ubound(arr)-Lbound(arr)+1获取数组个数
for i = 0 to count-1
for j = i to count-1
if arr(i)<arr(j) then把大的数交换到前面
temp = arr(i)把小的数储存起来
arr(i)=arr(j)把大的数赋于前面的arr(i)
arr(j)=temp
end if
nextj
next i
这个时候你得到的数组就是一个从大到小的数组了。
艾迪康乐园
2013-09-15 · TA获得超过491个赞
知道小有建树答主
回答量:493
采纳率:0%
帮助的人:655万
展开全部

直接调用下面的排序函数,传递你的arr数组,返回的就是排序完成的数组。

Dim arrf() As Double = BubbleSortF(arr)

 

arrf()就是经过宠大到小排序的数组。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
设计营地
2013-09-15 · 分享交流设计软件相关的知识
设计营地
采纳数:552 获赞数:860

向TA提问 私信TA
展开全部
使用冒泡排序法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-09-15
展开全部
Private Sub Command1_Click()
    Dim i As Integer
    Dim intMyArray(0 To 4) As Integer
    
    intMyArray(0) = 1
    intMyArray(1) = 5
    intMyArray(2) = 4
    intMyArray(3) = 1
    intMyArray(4) = 3
    
    If MySort(intMyArray()) Then
        
        For i = 0 To UBound(intMyArray)
            Print intMyArray(i)
        Next
    Else
        MsgBox "排序失败", vbExclamation, "提示"
    End If
    
End Sub
Private Function MySort(intArray() As Integer) As Boolean
    Dim i      As Integer, j As Integer
    Dim intTmp As Integer
    
    On Error GoTo ErrLab
    For i = 0 To UBound(intArray) - 1
        For j = 0 To UBound(intArray) - i - 1
            If intArray(j) > intArray(j + 1) Then
                intTmp = intArray(j)
                intArray(j) = intArray(j + 1)
                intArray(j + 1) = intTmp
            End If
        Next
    Next
    MySort = True
ErrLab:
    If Err.Number <> 0 Then
        MySort = False
    End If
End Function
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式