Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Sorting Arrays
#35
Aga,

I added the following sort algorithm of yours
DECLARE SUB qsort.byte.lowstart (array1() AS LONGINT, a.max%)
to a copy of the SORTDEMO.BAS program. Granted, this is a very simplistic test, but you can get a rough feeling for a sort algorithm's performance against others.

You will be pleased to know that your algorithm, with one exception, was faster than all the other algorithms in the SortDemo including the original QuickSort.

The one exception was Ethan Winer's version of QuickSort, which runs about 15% faster than yours. It's a non recursive QuickSort that accomplishes the same idea by using a stack. Here's his code:
Code:
'********* QSORT.BAS - Quick Sort algorithm
'Copyright (c) 1992 Ethan Winer

SUB QSort (Array(), StartEl, NumEls) STATIC

REDIM QStack(NumEls \ 5 + 10) 'create a stack

First = StartEl               'initialize work variables
Last = StartEl + NumEls - 1
StackPtr = 0

DO
  DO
    Temp = Array((Last + First) \ 2)  'seek midpoint
    I = First
    J = Last

    DO     'reverse both < and > below to sort descending
      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
*****
Reply


Messages In This Thread
Sorting Arrays - by Dean - 04-03-2005, 05:01 AM
Sorting Arrays - by Moneo - 04-04-2005, 07:07 AM
Sorting Arrays - by ShadowWolf - 04-04-2005, 08:12 AM
Sorting Arrays - by Antoni Gual - 04-04-2005, 07:15 PM
Sorting Arrays - by Dean - 04-04-2005, 08:21 PM
Sorting Arrays - by Antoni Gual - 04-04-2005, 08:49 PM
Sorting Arrays - by na_th_an - 04-04-2005, 09:19 PM
Sorting Arrays - by Dean - 04-04-2005, 09:30 PM
Sorting Arrays - by Antoni Gual - 04-04-2005, 09:53 PM
Sorting Arrays - by Dean - 04-04-2005, 10:04 PM
Sorting Arrays - by Dr_Davenstein - 04-05-2005, 02:18 AM
Sorting Arrays - by Dean - 04-05-2005, 02:42 AM
Sorting Arrays - by Dr_Davenstein - 04-05-2005, 02:51 AM
Sorting Arrays - by lillo - 04-05-2005, 04:02 AM
Sorting Arrays - by v3cz0r - 04-05-2005, 06:12 AM
Sorting Arrays - by Moneo - 04-05-2005, 06:57 AM
Sorting Arrays - by retsyo - 04-05-2005, 03:11 PM
Sorting Arrays - by Sisophon2001 - 04-06-2005, 07:15 AM
Sorting Arrays - by Dean - 04-09-2005, 02:54 AM
Sorting Arrays - by v3cz0r - 04-09-2005, 09:25 AM
Sorting Arrays - by wallace - 06-09-2005, 08:10 PM
Sorting Arrays - by Agamemnus - 06-15-2005, 08:26 AM
Sorting Arrays - by Moneo - 06-15-2005, 11:27 PM
Sorting Arrays - by Agamemnus - 06-16-2005, 01:05 AM
Sorting Arrays - by Moneo - 06-16-2005, 05:49 AM
Sorting Arrays - by Dr_Davenstein - 06-16-2005, 08:26 AM
Sorting Arrays - by Agamemnus - 06-16-2005, 09:41 AM
Sorting Arrays - by relsoft - 06-16-2005, 10:47 AM
Sorting Arrays - by Moneo - 06-17-2005, 03:53 AM
Sorting Arrays - by Anonymous - 06-17-2005, 05:50 AM
Sorting Arrays - by Agamemnus - 06-03-2005, 10:49 PM
Sorting Arrays - by DrV - 06-04-2005, 09:32 AM
Sorting Arrays - by Anonymous - 06-04-2005, 02:24 PM
Sorting Arrays - by Agamemnus - 06-05-2005, 07:50 AM
Sorting Arrays - by Agamemnus - 06-05-2005, 09:27 AM
Sorting Arrays - by Anonymous - 06-05-2005, 02:11 PM
Sorting Arrays - by Agamemnus - 06-05-2005, 07:06 PM
Sorting Arrays - by wallace - 06-07-2005, 01:24 AM
Sorting Arrays - by dumbledore - 06-07-2005, 02:40 AM
Sorting Arrays - by DrV - 06-07-2005, 04:45 AM
Sorting Arrays - by Agamemnus - 06-07-2005, 08:46 AM
Sorting Arrays - by barok - 06-07-2005, 10:20 AM
Sorting Arrays - by Anonymous - 06-07-2005, 11:23 AM
Sorting Arrays - by TheBigBasicQ - 06-09-2005, 01:39 AM
Sorting Arrays - by Moneo - 06-09-2005, 04:22 AM
Sorting Arrays - by dumbledore - 06-09-2005, 05:31 AM
Sorting Arrays - by Agamemnus - 06-10-2005, 04:04 AM
Sorting Arrays - by Moneo - 06-10-2005, 04:40 AM
Sorting Arrays - by Agamemnus - 06-10-2005, 06:51 PM
Sorting Arrays - by Moneo - 06-10-2005, 10:51 PM
Sorting Arrays - by Agamemnus - 06-13-2005, 09:58 AM
Sorting Arrays - by Moneo - 06-14-2005, 12:17 AM

Forum Jump:


Users browsing this thread: 2 Guest(s)