1. vba冒泡排序
Option Explicit
Sub SelectionSort()
Dim arr, i, j, temp
arr = Array(1, 9, 10, 5, 4)
PrintArr (arr)
For i = LBound(arr) To UBound(arr) - 1
For j = LBound(arr) To UBound(arr) - 1 - i
If arr(j) > arr(j + 1) Then
temp = arr(j) '小的放在前面,大的放到后面
arr(j) = arr(j + 1)
arr(j + 1) = temp
End If
Next j
Next
PrintArr (arr)
End Sub
Sub PrintArr(arr)
Dim i
Debug.Print ("=========================")
For i = LBound(arr) To UBound(arr)
Debug.Print arr(i)
Next
End Sub
2. vba 选择排序
Option Explicit
Sub SelectionSort()
Dim arr, i, j, k, temp
arr = Array(1, 9, 10, 5, 4)
PrintArr (arr)
For i = LBound(arr) To UBound(arr)
k = i
For j = k + 1 To UBound(arr)
If arr(j) < arr(k) Then
k = j ' 记下较小值的位置
End If
Next j
If i <> k Then
temp = arr(i)
arr(i) = arr(k)
arr(k) = temp
End If
Next
PrintArr (arr)
End Sub
Sub PrintArr(arr)
Dim i
Debug.Print ("=========================")
For i = LBound(arr) To UBound(arr)
Debug.Print arr(i)
Next
End Sub