Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Test sorting algorithms
#2
Something very slow about your QuickSort Eric

This demo sorts a million items in about 1 sec, your takes so long I gotta think somethings way off.
Code: (Select All)
DefLng A-Z
Const nItems = 1000000
ReDim Shared sa$(1 To nItems) 'setup with string array sa$() shared so dont have to pass as parameter
For x = 1 To nItems ' make a random list to sort
    b$ = ""
    r = (Rnd * 5) \ 1 + 2
    For i = 0 To r
        b$ = b$ + Mid$("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.?", (Rnd * 64) \ 1 + 1, 1)
    Next
    sa$(x) = b$
    Print b$,
Next
Print
Print "Press any to sort"
Sleep
t## = Timer(.01)
QSort 1, nItems
time## = Timer(.01) - t##
Cls
For i = 1 To nItems
    Print sa$(i),
Next
Print
Print "time:"; time##


' modified for QB64 from JB
' This is the best all purpose sort routine around, don't worry how it works, it just does!
' To use this sub rountine store all the string values you want to sort into sa$() array
' call Qsort with Start = 1 and Finish = number of Items in your array
Sub QSort (Start, Finish) 'sa$ needs to be  DIM SHARED !!!!    array
    Dim i As Long, j As Long, x$
    i = Start
    j = Finish
    x$ = sa$(Int((i + j) / 2))
    While i <= j
        While sa$(i) < x$
            i = i + 1
        Wend
        While sa$(j) > x$
            j = j - 1
        Wend
        If i <= j Then
            Swap sa$(i), sa$(j)
            i = i + 1
            j = j - 1
        End If
    Wend
    If j > Start Then QSort Start, j
    If i < Finish Then QSort i, Finish
End Sub
  724  855  599  923  575  468  400  206  147  564  878  823  652  556 bxor cross forever
Reply


Messages In This Thread
Test sorting algorithms - by eoredson - 05-04-2023, 02:29 AM
RE: Test sorting algorithms - by bplus - 05-04-2023, 04:29 PM
RE: Test sorting algorithms - by bplus - 05-04-2023, 04:47 PM
RE: Test sorting algorithms - by eoredson - 05-04-2023, 09:38 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  Sorting numbers - FiliSort 2112 8 173 Today, 09:21 AM
Last Post: SMcNeill
  Function IsWord%(test$) bplus 5 240 02-26-2026, 02:51 PM
Last Post: mdijkens
  Zeller's congruence pass 3: test day-of-week calculation algorythms for accuracy TDarcos 0 1,113 10-23-2024, 05:04 PM
Last Post: TDarcos

Forum Jump:


Users browsing this thread: 1 Guest(s)