fb:porticula NoPaste
Shaker-Sort etwas geändert
Uploader: | ytwinky |
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