Private Sub Form_Activate()
Open "in.txt" For Input As #1
i = 1
Do While Not EOF(1)
Input #1, num
i = i + 1
Loop
ReDim ar(i - 1)
Close #1
j = 1
Open "in.txt" For Input As #2
Do While Not EOF(2)
Input #2, num
ar(j) = num
j = j + 1
Loop
Close #2
qp ar(), 1, j - 1
Open "out.txt" For Output As #3
For i = 1 To j - 1
Print #3, ar(i)
Next i
Close #3
End
End Sub
Sub qp(ar(), leftpos, rightpos)
Dim pivot '中間數
If leftpos < rightpos Then
i = leftpos: j = rightpos + 1
pivot = ar(leftpos)
Do
Do '下行指標
i = i + 1
Loop While ar(i) >= pivot And i < rightpos
Do '上行指標
j = j - 1
Loop While ar(j) < pivot And j >= i
If i < j Then swap ar(i), ar(j)
Loop While i < j
swap ar(leftpos), ar(j)
qp ar(), leftpos, j - 1
qp ar(), j + 1, rightpos
End If
End Sub
Sub swap(a, b)
Dim temp As Variant
temp = a
a = b
b = temp
End Sub
【INPUT】
3
2
1
123
4
540
54
5441
543
57
45435664564
453
578
5427
15
【OUTPUT】
1
2
3
4
15
54
57
123
453
540
543
578
5427
5441
45435664564
--
[m [1;37m◢ [32m◣◢ [0;32m◣ [1;37m松山高中松江水綠 [0;37m◆作者 [1;37mXMAN [m
[1;32m◢█ [0;32m█◣ [0;37mbbs.sssh.tp.edu.tw (203.72.64.8) ◆來自 [32mu13-227.user.giga.net.tw [m