Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
|
|
@ -0,0 +1,56 @@
|
|||
DEFPROC_MergeSort(Start%,End%)
|
||||
REM *****************************************************************
|
||||
REM This procedure Merge Sorts the chunk of data% bounded by
|
||||
REM Start% & End%.
|
||||
REM *****************************************************************
|
||||
|
||||
LOCAL Middle%
|
||||
IF End%=Start% ENDPROC
|
||||
|
||||
IF End%-Start%=1 THEN
|
||||
IF data%(End%)<data%(Start%) THEN
|
||||
SWAP data%(Start%),data%(End%)
|
||||
ENDIF
|
||||
ENDPROC
|
||||
ENDIF
|
||||
|
||||
Middle%=Start%+(End%-Start%)/2
|
||||
|
||||
PROC_MergeSort(Start%,Middle%)
|
||||
PROC_MergeSort(Middle%+1,End%)
|
||||
PROC_Merge(Start%,Middle%,End%)
|
||||
|
||||
ENDPROC
|
||||
:
|
||||
DEF PROC_Merge(Start%,Middle%,End%)
|
||||
|
||||
LOCAL fh_size%
|
||||
fh_size% = Middle%-Start%+1
|
||||
|
||||
FOR I%=0 TO fh_size%-1
|
||||
fh%(I%)=data%(Start%+I%)
|
||||
NEXT I%
|
||||
|
||||
I%=0
|
||||
J%=Middle%+1
|
||||
K%=Start%
|
||||
|
||||
REPEAT
|
||||
IF fh%(I%) <= data%(J%) THEN
|
||||
data%(K%)=fh%(I%)
|
||||
I%+=1
|
||||
K%+=1
|
||||
ELSE
|
||||
data%(K%)=data%(J%)
|
||||
J%+=1
|
||||
K%+=1
|
||||
ENDIF
|
||||
UNTIL I%=fh_size% OR J%>End%
|
||||
|
||||
WHILE I% < fh_size%
|
||||
data%(K%)=fh%(I%)
|
||||
I%+=1
|
||||
K%+=1
|
||||
ENDWHILE
|
||||
|
||||
ENDPROC
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
REM Example of merge sort usage.
|
||||
Size%=1000
|
||||
|
||||
S1%=Size%/2
|
||||
|
||||
DIM data%(Size%)
|
||||
DIM fh%(S1%)
|
||||
|
||||
FOR I%=1 TO Size%
|
||||
data%(I%)=RND(100000)
|
||||
NEXT
|
||||
|
||||
PROC_MergeSort(1,Size%)
|
||||
|
||||
END
|
||||
Loading…
Add table
Add a link
Reference in a new issue