Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
|
|
@ -0,0 +1,51 @@
|
|||
PROC Swap(BYTE ARRAY tab INT i,j)
|
||||
BYTE tmp
|
||||
|
||||
tmp=tab(i) tab(i)=tab(j) tab(j)=tmp
|
||||
RETURN
|
||||
|
||||
BYTE FUNC QuickSelect(BYTE ARRAY tab INT count,index)
|
||||
INT px,i,j,k
|
||||
BYTE pv
|
||||
|
||||
DO
|
||||
px=count/2
|
||||
pv=tab(px)
|
||||
Swap(tab,px,count-1)
|
||||
|
||||
i=0
|
||||
FOR j=0 TO count-2
|
||||
DO
|
||||
IF tab(j)<pv THEN
|
||||
Swap(tab,i,j)
|
||||
i==+1
|
||||
FI
|
||||
OD
|
||||
|
||||
IF i=index THEN
|
||||
RETURN (pv)
|
||||
ELSEIF i>index THEN
|
||||
;left part of tab from 0 to i-1
|
||||
count=i
|
||||
ELSE
|
||||
Swap(tab,i,count-1)
|
||||
;right part of tab from i+1 to count-1
|
||||
tab==+(i+1)
|
||||
count==-(i+1)
|
||||
index==-(i+1)
|
||||
FI
|
||||
OD
|
||||
RETURN (0)
|
||||
|
||||
PROC Main()
|
||||
DEFINE COUNT="10"
|
||||
BYTE ARRAY data=[9 8 7 6 5 0 1 2 3 4],tab(COUNT)
|
||||
BYTE i,res
|
||||
|
||||
FOR i=0 TO COUNT-1
|
||||
DO
|
||||
MoveBlock(tab,data,COUNT)
|
||||
res=QuickSelect(tab,COUNT,i)
|
||||
PrintB(res) Put(32)
|
||||
OD
|
||||
RETURN
|
||||
Loading…
Add table
Add a link
Reference in a new issue