Basic Bubblesort
Basic Bubblesort
von eda70 » Do 15. Okt 2009, 16:07
Will 6 Zahlen sortieren. Geht das auch einfacher?
- Code: Alles auswählen
4000 PROC BUBBLESORT
4010 REPEAT
4015 TAUSCH=0
4020 FOR X=1 TO 5
4030 IF M1(X)>M1(X+1)
4040 STA=M1(X):M1(X)=M1(X+1):M1(X+1)=STA
4050 TAUSCH=1
4060 ENDIF
4070 NEXT X
4080 UNTIL TAUSCH=0
4090 ENDPROC
Re: Basic Bubblesort
von mp-one » Mo 19. Okt 2009, 10:37
Hi Eda,
also ich glaube, Bubblesort ist schon recht einfach. Ich habe hier noch eine Implementierung für Pascal gefunden, die zwar ohne "TAUSCH" auskommt, ansonsten aber auch nicht viel übersichtlicher ist.
- Code: Alles auswählen
procedure bubble;
var i,j,t:integer;
begin
for i:=n downto 1 do
for j:=2 to i do
if a[j-1]>a[j] then
begin t:=a[j-1]; a[j-1]:=a[j]; a[j]:=t; end;
end;
end;
Gruß,
Michael
Re: Basic Bubblesort
von FlorianD » Mo 19. Okt 2009, 20:40
soweit ich das auf einen Blick verstehe, ist der erste Codeschnippsel besser, weil er abbricht, wenn die Reihenfolge stimmt (Tausch am Ende der Schleife 0 ist). Der zweite Schnippsel läuft auf jeden fall n+ n-1 +n-2 + ... +n-n mal durch.
Oder habe ich da was übersehen?
Re: Basic Bubblesort
von pps » Mo 19. Okt 2009, 23:50
Ich hatte da mal ein Pascal Programm geschrieben, das etliche Sortierroutinen vergleicht. War mit TurboPascal damals für die Schule. Bubble war klar hinten.
Ich versuche mal das Programm aufzufinden (ist ja nun auch schon gut 15 Jahre her

). Aber ich habe es noch auf meinem Falcon, wo ich´s damals programmiert hatte - weil das PurePascal dort um Längen besser war, als das Turbo 5, was damals auf dem PC aktuell war - schon alleine, wegen GEM

Re: Basic Bubblesort
von cas » Di 20. Okt 2009, 10:04
pps hat geschrieben:Ich hatte da mal ein Pascal Programm geschrieben, das etliche Sortierroutinen vergleicht. War mit TurboPascal damals für die Schule. Bubble war klar hinten.
Bei 6 Eintraegen sollte die Geschwindigkeit aber kein Ausschlag gegeben. Ab 50 Eintraegen wuerde ich QuickSort benutzen,
http://en.wikipedia.org/wiki/Quicksort-- Carsten
Re: Basic Bubblesort
von FlorianD » Di 20. Okt 2009, 10:28
Quicksort benötigt aber Rekursion. Nicht alle Sprachen können das.
Re: Basic Bubblesort
von eda70 » Di 20. Okt 2009, 10:41
Danke für die Antworten.
Bubblesort ist halt schön einfach.
Wollte nur wissen, ob man die paar Basiczeilen noch kürzer, schöner oder eleganter hätte machen können.
Wenn nicht - um so besser

Re: Basic Bubblesort
von mp-one » Di 20. Okt 2009, 11:32
FlorianD hat geschrieben:Quicksort benötigt aber Rekursion. Nicht alle Sprachen können das.
Hi!
Ja, aber man kann es auch in eine nicht-rekursive Form bringen, wenn man Stapeloperationen nachbildet.
Gruß,
Michael
Re: Basic Bubblesort
von pps » Di 20. Okt 2009, 16:57
@cas: Ja Du hast Recht. Das mit den 6 Einträgen habe ich nicht so richtig für voll genommen. Da ist es relativ egal, welchen Algorithmus man nimmt.