FB18 - Das Forum für Informatik

fb18.de / Bachelorstudieng / PM Praktische Informatik

SE1 - Blatt13 - QuickSort

SE1 - Blatt13 - QuickSort 2006-01-30 20:59
Anonymer User
Nabend!
Im Netz finden sich widersprüchliche angaben zum quicksortallgorithmus.welche ist jetzt der ,den wir benutzen sollen?
sollen wir mit listen oder mit arrays arbeiten?was machen wenn die listenlänge unter 1?

Re: SE1 - Blatt13 - QuickSort 2006-01-30 21:17
Tomek
Ich denke, das müsste das richtige sein, nicht?

http://www.iti.fh-flensburg.de/lang/algorithmen/sortieren/quick/quick.htm

Tomek

Re: SE1 - Blatt13 - QuickSort 2006-01-30 23:07
garou
sollen wir mit listen oder mit arrays arbeiten?

Welchen Unterschied macht das für den Algorithmus?

was machen wenn die listenlänge unter 1?

Eine leere und damit vollständig sortierte Liste haben.

Re: SE1 - Blatt13 - QuickSort 2006-01-31 21:22
Viprex
Geht zwar nichts ums Quicksort, aber auch um Zettel 13.

Kann mir jemand entscheidende Tipps zu der letzten Aufgabe bzgl. der Implmentierung von Postfix geben? Ich habe mir schon den ganzen StringTokenZerleger Kram in den Java Docs angeguckt, frage mich nun aber, wie ich mit einem Token nun verfahren kann. Wie kann ich da z.B. effektiv unterscheiden, ob es sich um eine Zahl, einen Operator oder ein Leerzeichen handelt?

Re: SE1 - Blatt13 - QuickSort 2006-01-31 22:19
master2000
der StringTokenizer gibt dir keine Leerzeichen wieder, da er diese als Trennzeichen beachtet. du kannst dir dann von deinem tokenizer die einzelnen Strings nacheinander geben lassen. Bsp: "3 4 +" gibt dir dann die Strings: "3" "4" "+" und wie du Strings vergleichen kannst solltest du wissen:)

Re: SE1 - Blatt13 - QuickSort 2006-02-02 16:41
cheek
nur so als Anmerkung, verwendet nicht den StringTokenizer, der ist veraltet und trennt angeblich bei einigen Konstrukten die Strings nicht sauber. Deswegen sollte man die split Methode der String Klasse verwenden, diese ist auch komplett regex fähig (soweit java regex eben geht).

String a = " a b + c d + *";
String[] b = a.split(" ");

so kann man dann auch sehr schön mit den "neuen" for Schleifen über das Stringarray iterieren.

gruss
cheek

PS: Macht euch keinen Kopp darüber ob ihr nun Listen ArrayListen oder sonst eine Art Menge verwendet, in Java stammt alles aus dieser Kategorie von dem Collection Framework ab, d.h. java.util.Collections. die Methoden sind bei allen Derivaten deiser Klasse grösstenteils gleich. bzw verweisen eh nur auf die Methode des darüberliegenden Collection Klasse.

Re: SE1 - Blatt13 - QuickSort 2006-02-02 20:19
leif
StringTokenizer, der ist veraltet und trennt angeblich bei einigen Konstrukten die Strings nicht sauber.
Huh? Alt ist er, ja. Von Problemen habe ich da aber noch nie etwas gehört. Weißt Du da irgendwas genaueres oder ist das nur so ein ganz vages Gerücht? Mir fällt ad hoc nur ein, dass der StringTokenizer keine Locales berücksichtigt, aber ob die Java-Regexps das machen weiß ich auch nicht.

Aber die Benutzung der foreach-Schleife ist natürlich ein Vorteil von String#split.

Re: SE1 - Blatt13 - QuickSort 2006-02-02 20:50
Faleiro
Huh? Alt ist er, ja. Von Problemen habe ich da aber noch nie etwas gehört. Weißt Du da irgendwas genaueres oder ist das nur so ein ganz vages Gerücht?
Wusste ich auch nicht, hab mal nachgeschaut:

http://java.sun.com/j2se/1.4.2/docs/api/java/util/StringTokenizer.html

StringTokenizer is a legacy class that is retained for compatibility reasons although its use is discouraged in new code. It is recommended that anyone seeking this functionality use the split method of String or the java.util.regex package instead.

Re: SE1 - Blatt13 - QuickSort 2006-02-02 21:51
Wolf
Oh cool, dann hab ichs ja immer intuitiv richtig gemacht, obwohl die halbe Welt mokiert hat, ich solle doch bitte den StringTokenizer benutzen. [img]http://www.fb18.de/gfx/15.gif[/img]