Code archives/Algorithms/QuickSort

This code has been declared by its author to be Public Domain code.

Download source code

QuickSort by TFT (der Falke)
(Posted 25 years ago)
The Fast Quick Sort algo
Print
Print" BlitzBasic V 1.60"
Print
Print" QuickSort v0.4 (C) by TFT (der Falke) Rev.0001-2"
Print
Print" Code date 23.8.2001 / 24.8.2001"
Print" SerNr: 2001.0002-0
Print" EMail tft@optima-code.de
Print" Inter http://www.optima-code.de
Print
Delay 5000

Dim c(1000000)

For i=0To 1000000
c(i)=-Rnd(100000)
Next

t=MilliSecs()
a=quicksort(0,1000000)
t=MilliSecs()-t

Print "1000000 Element mit QickSort"
Print "Time "+Str$(t)

For i=0To 20
Print c(i)
Next

Repeat
Until KeyHit(1)

End

Function quicksort(l,r)
  Local p,q,h
  p=l
  q=r
  x=c((l+r)/2)
  Repeat
    While c(p)<x
      p=p+1
    Wend
    While x<c(q)
      q=q-1
    Wend
    If p>q Then Exit
	;SWAP------------------
	h=c(q)
	c(q)=c(p)
	c(p)=h
	;----------------------
    p=p+1
    q=q-1
    If q<0 Then Exit
  Forever 
  If l<q Then a=quicksort(l,q)
  If p<r Then a=quicksort(p,r)
  Return True
End Function

Comments

4pac
(Posted 23 years ago)
"While c(p)q Then Exit" ?????????

DJWoodgate
(Posted 23 years ago)
Yes. The displayed html version has been crippled by various updates to forum functionality. The original file is Ok though, use the download .bb file link above the code listing.

Code Archives Forum