Buchempfehlung
Windows System Programming
Windows System Programming
Das Kompendium liefert viele interessante Informationen zur Windows-Programmierung auf Englisch. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

fb:porticula NoPaste

Info
Info / Hilfe
Liste
Übersicht / Liste
Neu
Datei hochladen
Suche
Quellcode suchen
Download
Dateidownload

Shaker-Sort etwas geändert

Uploader:Redakteurytwinky
Datum/Zeit:13.08.2010 17:08:47

Declare Sub ShakerSort(Feld() As Integer)

Randomize Timer
Var i=0
Dim values(10) As Integer
For i=1 To 10
    values(i)=Rnd(1)*100+1
    Print values(i)
Next
Print "---"
ShakerSort(values())

For i=1 To 10
    Print values(i)
Next

GetKey
'Quelle:
'http://de.wikipedia.org/wiki/Cocktailsort#Visual_Basic
'etwas mehr angepasst..
Sub ShakerSort(Feld() As Integer)
    Var u=UBound(Feld) 'u wird vor den Schleifen berechnet, das spart Zeit(bei großen Arrays)..
    Var Size=u+1 'Größe des Arrays +1
    Var i=0, j=0
    For i=1 To Size/2 'Wieso Half berechnen, wenn es nur einmal benutzt wird..
        For j=1 To u-i 'aufwärts
            If Feld(j)>Feld(j+1) Then Swap Feld(j), Feld(j+1) 'Swap ist es egal, ob Integer oder Double s.Ref..
        Next j
        For j=u To 1+i Step -1 'abwärts
            If Feld(j-1)>Feld(j) Then Swap Feld(j-1), Feld(j)
        Next j
    Next i
End Sub