Data update
This commit is contained in:
parent
29a5eea0d4
commit
5c1bb7bfa9
2011 changed files with 35081 additions and 3229 deletions
|
|
@ -0,0 +1,51 @@
|
|||
100 REM Sorting algorithms/Quicksort
|
||||
110 DECLARE EXTERNAL SUB QuickSort
|
||||
120 DIM Arr(0 TO 19)
|
||||
130 LET A = LBOUND(Arr)
|
||||
140 LET B = UBOUND(Arr)
|
||||
150 RANDOMIZE
|
||||
160 FOR I = A TO B
|
||||
170 LET Arr(I) = ROUND(INT(RND * 99))
|
||||
180 NEXT I
|
||||
190 PRINT "Unsorted:"
|
||||
200 FOR I = A TO B
|
||||
210 PRINT USING "## ": Arr(I);
|
||||
220 NEXT I
|
||||
230 PRINT
|
||||
240 PRINT "Sorted:"
|
||||
250 CALL QuickSort(Arr, A, B)
|
||||
260 FOR I = A TO B
|
||||
270 PRINT USING "## ": Arr(I);
|
||||
280 NEXT I
|
||||
290 PRINT
|
||||
300 END
|
||||
310 REM **
|
||||
320 EXTERNAL SUB QuickSort (Arr(), L, R)
|
||||
330 LET LIndex = L
|
||||
340 LET RIndex = R
|
||||
350 IF R > L THEN
|
||||
360 LET Pivot = INT((L + R) / 2)
|
||||
370 DO WHILE (LIndex <= Pivot) AND (RIndex >= Pivot)
|
||||
380 DO WHILE (Arr(LIndex) < Arr(Pivot)) AND (LIndex <= Pivot)
|
||||
390 LET LIndex = LIndex + 1
|
||||
400 LOOP
|
||||
410 DO WHILE (Arr(RIndex) > Arr(Pivot)) AND (RIndex >= Pivot)
|
||||
420 LET RIndex = RIndex - 1
|
||||
430 LOOP
|
||||
440 LET Temp = Arr(LIndex)
|
||||
450 LET Arr(LIndex) = Arr(RIndex)
|
||||
460 LET Arr(RIndex) = Temp
|
||||
470 LET LIndex = LIndex + 1
|
||||
480 LET RIndex = RIndex - 1
|
||||
490 IF (LIndex - 1) = Pivot THEN
|
||||
500 LET RIndex = RIndex + 1
|
||||
510 LET Pivot = RIndex
|
||||
520 ELSEIF (RIndex + 1) = Pivot THEN
|
||||
530 LET LIndex = LIndex - 1
|
||||
540 LET Pivot = LIndex
|
||||
550 END IF
|
||||
560 LOOP
|
||||
570 CALL QuickSort (Arr, L, Pivot - 1)
|
||||
580 CALL QuickSort (Arr, Pivot + 1, R)
|
||||
590 END IF
|
||||
600 END SUB
|
||||
Loading…
Add table
Add a link
Reference in a new issue