Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
|
|
@ -0,0 +1,37 @@
|
|||
Procedure QuickPartition (Array L(1), left, right, pivotIndex)
|
||||
pivotValue = L(pivotIndex)
|
||||
Swap L(pivotIndex) , L(right); Move pivot To End
|
||||
storeIndex = left
|
||||
For i=left To right-1
|
||||
If L(i) < pivotValue
|
||||
Swap L(storeIndex),L(i)
|
||||
storeIndex+1
|
||||
EndIf
|
||||
Next i
|
||||
Swap L(right), L(storeIndex) ; Move pivot To its final place
|
||||
ProcedureReturn storeIndex
|
||||
EndProcedure
|
||||
Procedure QuickSelect(Array L(1), left, right, k)
|
||||
Repeat
|
||||
If left = right:ProcedureReturn L(left):EndIf
|
||||
pivotIndex.i= left; Select pivotIndex between left And right
|
||||
pivotIndex= QuickPartition(L(), left, right, pivotIndex)
|
||||
If k = pivotIndex
|
||||
ProcedureReturn L(k)
|
||||
ElseIf k < pivotIndex
|
||||
right= pivotIndex - 1
|
||||
Else
|
||||
left= pivotIndex + 1
|
||||
EndIf
|
||||
ForEver
|
||||
EndProcedure
|
||||
Dim L.i(9)
|
||||
For i=0 To 9
|
||||
Read L(i)
|
||||
Next i
|
||||
DataSection
|
||||
Data.i 9, 8, 7, 6, 5, 0, 1, 2, 3, 4
|
||||
EndDataSection
|
||||
For i=0 To 9
|
||||
Debug QuickSelect(L(),0,9,i)
|
||||
Next i
|
||||
Loading…
Add table
Add a link
Reference in a new issue