這是在書上所看到的...
1 Sub quicksort(list() As Long, ByVal left As Integer, Bybal Right As Integer)
2 Dim i, j As Integer, pivot As Integer
3 If left < right then
4 i = left : j=right + 1
5 pivot = list(left)
6 Do
7 Do
8 i=i+1
9 Loop While(list(i) < pivot)
10 Do
11 j = j + 1
12 Loop While(List(j) < Pivot
13 If (i < j) Then
14 swap(list(),i ,j)
15 End If
16 Loop While (i < j)
17 swap(list(), left , j)
18 quicksort(list(),left , j-1)
19 quicksort(list(),j+1 , right)
20 End If
21 End Sub
Sub swap(list() As Long, ByVal a, Byval b)
Dim temp As Long
temp = list(a)
list(a) = list(b)
list(b)= temp
End Sub
請問在第4行的地方 i = left : j = right +1,那個:是做什麼用的ㄚ,,?而他怎麼可以在一行中下兩個指令呢.!?.
還有請問他傳入的left 和 right參數是否為LBound(list)與RBound(list)呢..!?如果是的話.那在第12行的While條件式中的list(j)不就會出問題了嗎?..另外第11行的j=j+1是否要改成j=j-1呢..!?
謝謝