Nachtrag nach Forum-Umzug
Anm.: Seit SORTARRAY eigentlich überflüssig
DIM a[1000]
FOR i = 0 TO 999
a[i] = RND(1000)
NEXT
t1 = GETTIMERALL()
bubblesort(a[])
t2 = GETTIMERALL()
t3 = t2 - t1
PRINT "Zeit für Bubble Sort: " + FORMAT$(10, 2, t3) + " Millisekunden", 0 ,0
SHOWSCREEN
KEYWAIT
WHILE TRUE
x = 0
y = 0
FOR i = 0 TO 999
PRINT a[i], x, y
INC y, 10
IF y > 470
y = 0
INC x, 30
ENDIF
NEXT
SHOWSCREEN
WEND
// ------------------------------------------------------------- //
// -=# BUBBLESORT #=-
// ------------------------------------------------------------- //
FUNCTION bubblesort: array[]
LOCAL count = BOUNDS(array[], 0) - 1
LOCAL notsorted = TRUE
LOCAL i, t
WHILE notsorted
notsorted = FALSE
FOR i = 0 TO count - 1
IF array[i] > array[i+1]
t = array[i]
array[i] = array[i+1]
array[i+1] = t
notsorted = TRUE
ENDIF
NEXT
WEND
ENDFUNCTION // BUBBLESORT
Die schnelle Sortiervariante: (abgekupfert bei einem Delphi-Listing)
// --------------------------------- //
// Project: sort
// Start: Monday, August 20, 2007
// IDE Version: 4.192
DIM a[1000]
FOR i = 0 TO 999
a[i] = RND(1000)
NEXT
t1 = GETTIMERALL()
quicksort(a[], 0, BOUNDS(a[], 0) - 1)
//bubblesort(a[])
t2 = GETTIMERALL()
t3 = t2 - t1
PRINT "Zeit für Quicksort: " + FORMAT$(10, 2, t3) + " Millisekunden", 0 ,0
SHOWSCREEN
KEYWAIT
WHILE TRUE
x = 0
y = 0
FOR i = 0 TO 999
PRINT a[i], x, y
INC y, 10
IF y > 470
y = 0
INC x, 30
ENDIF
NEXT
SHOWSCREEN
WEND
// ------------------------------------------------------------- //
// -=# QUICKSORT #=-
// ------------------------------------------------------------- //
FUNCTION quicksort: array[], low, high
LOCAL lo, hi, piv, t
lo = low
hi = high
piv = array[high]
WHILE TRUE
WHILE array[lo] < piv
INC lo, 1
WEND
WHILE array[hi] > piv
DEC hi, 1
WEND
IF lo <= hi
t = array[lo]
array[lo] = array[hi]
array[hi] = t
INC lo, 1
DEC hi, 1
ENDIF
IF lo > hi THEN BREAK
WEND
IF hi > low THEN quicksort(array[], low, hi)
IF lo < high THEN quicksort(array[], lo, high)
ENDFUNCTION // QUICKSORT
Irgendwie cool, auch wenn ich es atm nicht brauche!
Die Codes finde ich spitze! Darf ich sie (nur wenn du erlaubst) benutzen und mit meiner DB verbinden?
dürfen latürnich frei verwendet werden, sonst ständen sie nicht hier. Aber wie gesagt, sei SORTARRAY überflüssig