BBS: Inland Empire Archive Date: 11-21-92 (11:21) Number: 375 From: DIK COATES Refer#: NONE To: JOHN GALLAS Recvd: NO Subj: Re: string sorting Conf: (2) Quik_Bas
>>>> QUOTING Joe Clark to John Gallas <<<<
JC> If you are looking for a basic sorting routine, then the
JC> fastest that I have used is the "SHELL-METZNER SORT"
Enclosed for your edification:
'***************************************************** SUBPROGRAM Sortshell.1
'
' Procedure uses the Shell-Metzger algorithm for sorting an array of string
' variables. Adapted from an article by Donald Shell. This sorting
' algorithm is extremely efficient for sorting small and medium sized
' arrays.
'
' PARAMETERS: col0% = number of elements in the string array array$()
' array$() = string variable array to be sorted.
' RETURNS: array$() = sorted string variable array
'
' REV: 88-04-01
'
SUB Sortshell.1 (col0%, array$())
col1% = col0%
WHILE col1% <> 0
col1% = col1% \ 2
col2% = col0% - col1%
FOR count% = 1 TO col2%
col3% = count%
sort1:
col4% = col3% + col1%
IF array$(col3%) <= array$(col4%) THEN
GOTO sort2
ELSE
SWAP array$(col3%), array$(col4%)
col3% = col3% - col1%
END IF
IF col3% > 0 THEN
GOTO sort1
END IF
sort2:
NEXT count%
WEND
END SUB
Was cooked from original assembly code from IBM mainframe back when
I was young and foolish...It is fast, but for random generated strings.
If the list is partially sorted (or only 1 element out of place, as
common for database stuff, then old bubble sort is by far the fastest)
Regards Dik
... Vote Conservative or I'll shoot your dog. -Dik
___ Blue Wave/QWK v2.10
--- Maximus 2.00
* Origin: Durham Systems (ONLINE!) (1:229/110)

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