VBA中数组的排序

升序排序

Sub 升序排序()
    arr = Array(3, 5, 7, 1, 8, 9, 30, 57, 0, 34)
    For i = 0 To UBound(arr)
        For j = i + 1 To UBound(arr)
            s = arr(j)
            If arr(i) > arr(j) Then
                arr(j) = arr(i)
                arr(i) = s
            End If
        Next
    Next
    For Each ii In arr
        k = k & " " & ii
    Next
    Debug.Print k
End Sub

整体思路
使用冒泡排序算法对一个整数数组进行升序排序。冒泡排序的基本思想是比较数组中相邻的元素,并交换它们,直到整个数组变得有序。

代码的注释

  1. For i = 0 To UBound(arr):这是一个外部循环,它从数组的第一个元素(索引0)开始,直到最后一个元素(UBound(arr) 表示数组的最大索引)。
  2. For j = i + 1 To UBound(arr):这是一个内部循环,它从外部循环当前元素的下一个元素开始,直到数组的最后一个元素。
  3. s = arr(j):这行代码将内部循环中的当前元素的值存储在变量 s 中,以便稍后进行交换。
  4. If arr(i) > arr(j) Then:这个条件检查当前元素是否大于下一个元素,如果是,执行以下操作。
  5. arr(j) = arr(i) 和 arr(i) = s:这两行代码执行元素交换,将较大的元素移到数组的较后位置。
  6. 第一个 Next:结束内部循环。
  7. 第二个 Next:结束外部循环。

降序排序

Sub 降序排序()
    arr = Array(3, 5, 7, 1, 8, 9, 30, 57, 0, 34)
    For i = 0 To UBound(arr)
        For j = i + 1 To UBound(arr)
            s = arr(j)
            If arr(i) < arr(j) Then
                arr(j) = arr(i)
                arr(i) = s
            End If
        Next
    Next
    For Each ii In arr
        k = k & " " & ii
    Next
    Debug.Print k
End Sub

 

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值