Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Sorting Arrays
#15
Using a pointers table as Angelo suggested and zstrings the result was 8.2 secs on my 1.8 athlon, now using the GDSL library + strcmp(), i got 5.2 secs (GDSL is a static lib, so the exe was 17kb, no DLL's are needed), here's the test:

Code:
#include once "gdsl/gdsl.bi"
#include once "crt.bi"

declare sub quicksort(byval min,byval max)
declare sub fillarray(byval min,byval max)

const elements = 3000000

    dim shared myarray(0 to elements-1) as zstring * 8
    dim shared ptrarray(0 to elements-1) as zstring ptr

    '' using quicksort in FB
    fillarray(0, elements-1)
    t# = timer
    quicksort(0, elements-1)
    print timer - t#
    
    '' using gdsl + strcmp
    fillarray(0, elements-1)
    t# = timer
    gdsl_sort( @ptrarray(0), elements, @strcmp )
    print timer - t#

'':::::
sub fillarray(byval min,byval max)
    dim i as integer
    dim s as string
    
    for i = max to min step -1
        s = str$(i)
        if len(s) < 7 then
            s += string$(7 - len(s), " ")
        end if
        myarray(max-i) = s
        ptrarray(i) = @myarray(i)
    next z
end sub

'':::::
sub quicksort(byval min,byval max)
    dim p1,p2,midd as zstring*8

    if min < max then
        p1 = min
        p2 = max
        midd = *ptrarray((min + max) \ 2)
        do until p1 > p2
            do while *ptrarray(p1) < midd
                p1 += 1
            loop
            do while midd < *ptrarray(p2)
                p2 -= 1
            loop
            if p1 <= p2 then
                swap ptrarray(p1), ptrarray(p2)
                p1 += 1
                p2 -= 1
            end if
        loop
        if min < p2 then quicksort min, p2
        if p1 < max then quicksort p1, max
    end if
    
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)