home *** CD-ROM | disk | FTP | other *** search
- '─ Area: F-QUICKBASIC ─────────────────────────────────────────────────────────
- ' Msg#: 445 Date: 12 Apr 94 14:24:05
- ' From: Coridon Henshaw Read: Yes Replied: No
- ' To: CHRIS CRANFORD Mark:
- ' Subj: Sorting Routine
- '──────────────────────────────────────────────────────────────────────────────
- 'Here's a standard QuickSort routine that will sort any string data, including
- 'FTN addresses:
-
- SUB QSort (Array$(), StartEl, NumEls) STATIC
-
- REDIM QStack(NumEls \ 5 + 10)
- First = StartEl
- Last = StartEl + NumEls - 1
- DO
- DO
- Temp$ = Array$((Last + First) \ 2)
- I = First
- j = Last
- DO
- WHILE Array$(I) < Temp$
- I = I + 1
- WEND
- WHILE Array$(j) > Temp$
- j = j - 1
- WEND
- IF I > j THEN EXIT DO
- IF I < j THEN SWAP Array$(I), Array$(j)
- I = I + 1
- j = j - 1
- LOOP WHILE I <= j
- IF I < Last THEN 'Done
- QStack(StackPtr) = I 'Push I
- QStack(StackPtr + 1) = Last 'Push Last
- StackPtr = StackPtr + 2
- END IF
- Last = j
- LOOP WHILE First < Last
- IF StackPtr = 0 THEN EXIT DO
- StackPtr = StackPtr - 2
- First = QStack(StackPtr) 'Pop First
- Last = QStack(StackPtr + 1) 'Pop Last
- LOOP
- ERASE QStack 'delete the stack array
-
- END SUB
- ===
-
- CSBH
-
- -!- GEcho 1.00
- ! Origin: Barney (n): Well known purple mutant eggplant from Hell. (1:250/820)
-
-