BBS: Inland Empire Archive Date: 12-08-92 (07:56) Number: 382 From: DAVID COLSTON Refer#: NONE To: ALL Recvd: NO Subj: Sorts Conf: (2) Quik_Bas
I have caught several post on sorts. In particular a need to sort a
directory. Here is a sample program for this in 7.1.
DECLARE SUB QuickSort (A$(), NumberofRecords!)
DIM A$(1000)
Count = 1
Filespect$ = "*.*"
A$(Count) = DIR$(Filespect$)
IF LEN(A$(1)) > 0 THEN
DO
A$ = DIR$
IF LEN(A$) > 0 THEN
Count = Count + 1
A$(Count) = A$
END IF
LOOP UNTIL LEN(A$) = 0
ELSE
Count = 0
END IF
IF Count > 0 THEN
QuickSort A$(), Count
OPEN "O", 2, "Files.Dir"
FOR I = 1 TO Count
PRINT #2, A$(I)
NEXT
CLOSE
END IF
SUB QuickSort (A$(), NumberofRecords) STATIC
False = 0
Offset = NumberofRecords \ 2
' Loop until offset gets to zero:
DO WHILE Offset > 0
Limit = NumberofRecords - Offset
DO
' Assume no switches at this offset:
Switch = False
' Compare elements and switch ones out of order:
FOR I = 1 TO Limit
IF A$(I) > A$(I + Offset) THEN
SWAP A$(I), A$(I + Offset)
Switch = I
END IF
NEXT I
' Sort on next pass only to where
' last switch was made:
Limit = Switch
LOOP WHILE Switch
' No switches at last offset, try one half as big:
Offset = Offset \ 2
LOOP
END SUB
'I hope this helps some of you.
* OLX 2.1 TD * Press any key to continue or any other key to quit
--- WM v2.04/92-0178
* Origin: Paradox of Arkansas *Wildcat 3.0* 501-646-7158 (1:19/121)

Books at Amazon:
Back to BASIC: The History, Corruption, and Future of the Language
Hackers: Heroes of the Computer Revolution (including Tiny BASIC)
Go to: The Story of the Math Majors, Bridge Players, Engineers, Chess Wizards, Scientists and Iconoclasts who were the Hero Programmers of the Software Revolution
The Advent of the Algorithm: The Idea that Rules the World
Moths in the Machine: The Power and Perils of Programming
Mastering Visual Basic .NET