升序排序
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
整体思路
使用冒泡排序算法对一个整数数组进行升序排序。冒泡排序的基本思想是比较数组中相邻的元素,并交换它们,直到整个数组变得有序。
代码的注释
- For i = 0 To UBound(arr):这是一个外部循环,它从数组的第一个元素(索引0)开始,直到最后一个元素(UBound(arr) 表示数组的最大索引)。
- For j = i + 1 To UBound(arr):这是一个内部循环,它从外部循环当前元素的下一个元素开始,直到数组的最后一个元素。
- s = arr(j):这行代码将内部循环中的当前元素的值存储在变量 s 中,以便稍后进行交换。
- If arr(i) > arr(j) Then:这个条件检查当前元素是否大于下一个元素,如果是,执行以下操作。
- arr(j) = arr(i) 和 arr(i) = s:这两行代码执行元素交换,将较大的元素移到数组的较后位置。
- 第一个 Next:结束内部循环。
- 第二个 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