VB初心者質問スレPart3
■ このスレッドは過去ログ倉庫に格納されています
0767長文失礼します
NGNGこんな感じかな?
' QuickSortの部分はWebで拾ったサンプルのコピペ。
Type POINT
x As Double, y As Double
End Type
Sub main()
Dim i As Long
Dim data(0 To 99) As POINT
For i = 0 To 99
data(i).x = Rnd
data(i).y = Rnd
Next
QuickSort data, LBound(data), UBound(data)
For i = 0 To 99
Debug.Print data(i).x; " "; data(i).y
Next
End Sub
Sub QuickSort(ByRef TargetArray() As POINT, StartArray As Long, EndArray As Long)
Dim Count As Long
Dim LastArray As Long
Dim SwapBuff As POINT
If StartArray >= EndArray Then Exit Sub
SwapBuff = TargetArray(StartArray)
TargetArray(StartArray) = TargetArray((StartArray + EndArray) / 2)
TargetArray((StartArray + EndArray) / 2) = SwapBuff
LastArray = StartArray
For Count = StartArray + 1 To EndArray
If TargetArray(Count).x < TargetArray(StartArray).x Then
LastArray = LastArray + 1
SwapBuff = TargetArray(LastArray)
TargetArray(LastArray) = TargetArray(Count)
TargetArray(Count) = SwapBuff
End If
Next Count
SwapBuff = TargetArray(StartArray)
TargetArray(StartArray) = TargetArray(LastArray)
TargetArray(LastArray) = SwapBuff
Call QuickSort(TargetArray, StartArray, LastArray - 1)
Call QuickSort(TargetArray, LastArray + 1, EndArray)
End Sub
■ このスレッドは過去ログ倉庫に格納されています