插入排序的思想是:將初始數據分為有序部分和無序部分,每一步將一個無序部分的數據插入到前面已經排好序的有序部分中,直到插完所有元素為止。 ??插入排序的步驟如下:每次從無序部分中取出一個元素,與有序部分中的元素從后向前依次進行比較,并找到合適的位置,將該元素插到有序組當中。


Sub InsertSort() Dim i, j, temp, arr(1 To 10) For i = 1 To 10 arr(i) = Int(Rnd * 100 + 1) Next i Debug.Print 'Original Data: ' & Join(arr, ',') '輸出原始數據 For i = 2 To 10 '循環整個數組 For j = i - 1 To 1 Step -1 '從第一項循環到第 i -1 項,用第i 項去對比,符合條件則插入 If arr(j + 1) < arr(j) Then temp = arr(j + 1) arr(j + 1) = arr(j) arr(j) = temp If j > 1 Then If arr(j - 1) < arr(j) Then Exit For End If End If Next j Next i Debug.Print 'After Sort: ' & Join(arr, ',') '輸出排序后的數據
Original Data: 53,77,6,60,47,30,63,65,27,28 After Sort: 6,27,28,30,47,53,60,63,65,77

|