Algorithmen[Prog1]
Re: Algorithmen[Prog1]
das mit dem jdk-qs kann ich mir auch nicht erklären, ist nur bei mir so. und ja wir ham das mit assertions getestet. Das p haben wir rausgeworfen weil wir den algo einfach nur noch als einen quicksort mit kluger pivotwahl betrachten... so kommts dann auch zur performance. aber naja, die kernprobleme haben wir auch nicht anders gelößt und erkennen kann man den algo auch noch - denke ich.
Re: Algorithmen[Prog1]
wie witzig das bei mir is^^
genau wenn ich die sache mit dem p rausnehm und stattdessen einfach das ganze restliche array als U annehme sortiert er bei mir wunderbar!
bau ich das p wieder ein gehts nur gut wenn die 3. rekursion nichts mehr tun muss >.< ich versteh es nicht aber ich denke wenn ichs nich noch hinkrieg muss ich die lösung ohne p einreichen^^
genau wenn ich die sache mit dem p rausnehm und stattdessen einfach das ganze restliche array als U annehme sortiert er bei mir wunderbar!
bau ich das p wieder ein gehts nur gut wenn die 3. rekursion nichts mehr tun muss >.< ich versteh es nicht aber ich denke wenn ichs nich noch hinkrieg muss ich die lösung ohne p einreichen^^
Re: Algorithmen[Prog1]
Also wenn ihr "die Sache mit dem P" rausnehmt, isses ja nimmer wirklich der Algorithmus, imho.
Re: Algorithmen[Prog1]
Hallo nochmal,
Kommt bei jemanden auch bei zu vielen Zahlen ein StackOverFlow Error? Bei mir funktioniert der Algorithmus, allerdings für max. 500 Zahlen.
Die Struktur sieht ungefährt so aus:
presortedPrefixSort(Array a, int from, int to, int s) {
if (s < toIndex + 1 && toIndex > fromIndex) {
int sLend, sRstart, sRend, uLstart, uLend, uRstart, uRend, pivot & 4 weitere ints...
....
rekursion(a, fromIndex, uLend, uLstart);
rekursion(a, sRstart, uRend, uRstart);
rekursion(a, fromIndex, toIndex, uRend + 1);
) else {
//do nothing
}
}
Wenn ich bei Eclipse versuche, die SortingFrameworkRandom auszuführen kommt nach ner Weile n StackOverFlow Error.
Wenn ich eine eigene Main-Methode habe und dort den Algorithmus ausführe mit bis ca. 400 zufällige Zahlen werden sie richtig sortiert.
Muss ich diese Parameter "-ea -Xms512M -Xmx512M" da bei "Run Configurations" bei "SortingFramework...." unter VM arguments bei "Arguments" eintragen? Das scheint irgendwie bei mir nichts zu bringen. Sorry, bin nicht grad n richtiger Profi .
Kommt bei jemanden auch bei zu vielen Zahlen ein StackOverFlow Error? Bei mir funktioniert der Algorithmus, allerdings für max. 500 Zahlen.
Die Struktur sieht ungefährt so aus:
presortedPrefixSort(Array a, int from, int to, int s) {
if (s < toIndex + 1 && toIndex > fromIndex) {
int sLend, sRstart, sRend, uLstart, uLend, uRstart, uRend, pivot & 4 weitere ints...
....
rekursion(a, fromIndex, uLend, uLstart);
rekursion(a, sRstart, uRend, uRstart);
rekursion(a, fromIndex, toIndex, uRend + 1);
) else {
//do nothing
}
}
Wenn ich bei Eclipse versuche, die SortingFrameworkRandom auszuführen kommt nach ner Weile n StackOverFlow Error.
Wenn ich eine eigene Main-Methode habe und dort den Algorithmus ausführe mit bis ca. 400 zufällige Zahlen werden sie richtig sortiert.
Muss ich diese Parameter "-ea -Xms512M -Xmx512M" da bei "Run Configurations" bei "SortingFramework...." unter VM arguments bei "Arguments" eintragen? Das scheint irgendwie bei mir nichts zu bringen. Sorry, bin nicht grad n richtiger Profi .
Re: Algorithmen[Prog1]
Guten Morgen,
Also es ist auf jeden Fall richtig, wenn du "-ea","-Xmx" usw. unter VM arguments einträgst. "Arguments" sind für das Programm; man kann die dann aus dem Array, welches an die main-Methode übergeben wird, auslesen.
Zwar erscheint mir das nicht besonders wahrscheinlich, aber wie behandelst du das Problem, dass SL UL oder SR UR nicht leer sein dürfen? Wenn du in Eclipse im Debugger guckst (Programm mit F11 ausführen und dazu an einer passenden Stelle einen Breakpoint setzen [Rechtsklick neben der betreffenden Zeile und dann "Toggle Breakpoint"]), dann kannst du dir den Stack anzeigen lassen, wie er sich allmählich aufbaut. Du kannst dir auch einfach den (sehr langen) Stack ansehen, wie er dir von der Exception ausgegeben wird. Dort kannst du dann nachsehen, wo er sich dann aufhängt. (Meistens siehst du eine ganze Reihe von gleichen Zeilennummern hintereinander).
Dann weißt du schon mal, in welcher der drei Rekursionen es wohl hängt (wahrscheinlich in der ersten oder zweiten). Warum es gerade für wenigen Zahlen gut funktioniert und ab ca. 500 wie du schreibst nicht, weiß ich leider auch nicht
Wenn du mit "rekursion" den direkten Aufruf von presortedPrefixSort meinst, dann musst du auch immer aufpassen, ob du mit "uLstart" bzw "uRstart" eine Länge oder einen Index meinst. Für mich hört sich das nämlich so an, als ob "start" eher ein Index ist; du willst aber (eigentlich?) eine Länge (nämlich s), oder?
Grüße
Roland
Also es ist auf jeden Fall richtig, wenn du "-ea","-Xmx" usw. unter VM arguments einträgst. "Arguments" sind für das Programm; man kann die dann aus dem Array, welches an die main-Methode übergeben wird, auslesen.
Zwar erscheint mir das nicht besonders wahrscheinlich, aber wie behandelst du das Problem, dass SL UL oder SR UR nicht leer sein dürfen? Wenn du in Eclipse im Debugger guckst (Programm mit F11 ausführen und dazu an einer passenden Stelle einen Breakpoint setzen [Rechtsklick neben der betreffenden Zeile und dann "Toggle Breakpoint"]), dann kannst du dir den Stack anzeigen lassen, wie er sich allmählich aufbaut. Du kannst dir auch einfach den (sehr langen) Stack ansehen, wie er dir von der Exception ausgegeben wird. Dort kannst du dann nachsehen, wo er sich dann aufhängt. (Meistens siehst du eine ganze Reihe von gleichen Zeilennummern hintereinander).
Dann weißt du schon mal, in welcher der drei Rekursionen es wohl hängt (wahrscheinlich in der ersten oder zweiten). Warum es gerade für wenigen Zahlen gut funktioniert und ab ca. 500 wie du schreibst nicht, weiß ich leider auch nicht
Wenn du mit "rekursion" den direkten Aufruf von presortedPrefixSort meinst, dann musst du auch immer aufpassen, ob du mit "uLstart" bzw "uRstart" eine Länge oder einen Index meinst. Für mich hört sich das nämlich so an, als ob "start" eher ein Index ist; du willst aber (eigentlich?) eine Länge (nämlich s), oder?
Grüße
Roland
Re: Algorithmen[Prog1]
Hallo,
Bei mir zeig s immer den Index an, bis wohin schon sortiert wurde. Hab den Fehler aber raus gekriegt, hatte irgendwie noch eine vierte Rekursion drinne die ich nicht gelöscht habe . Vielen Dank.
Bei mir zeig s immer den Index an, bis wohin schon sortiert wurde. Hab den Fehler aber raus gekriegt, hatte irgendwie noch eine vierte Rekursion drinne die ich nicht gelöscht habe . Vielen Dank.
-
- Beiträge: 13
- Registriert: So 9. Nov 2008, 16:27
Re: Algorithmen[Prog1]
Hallo,
man muss das Programm ja an den Tutor schicken, ich hab aber die E-Mail Adresse nicht. Kann mir vllt jemand helfen? Mein Tutor ist Markus Roth. Ich hab nirgends ne Liste mit den E-Mail Adressen finden können.
Danke schonmal
man muss das Programm ja an den Tutor schicken, ich hab aber die E-Mail Adresse nicht. Kann mir vllt jemand helfen? Mein Tutor ist Markus Roth. Ich hab nirgends ne Liste mit den E-Mail Adressen finden können.
Danke schonmal
-
- Beiträge: 13
- Registriert: So 9. Nov 2008, 16:27
Re: Algorithmen[Prog1]
Danke, aber da kommt der Fehler, dass ich nicht die Berechtigung habe auf das Objekt zuzugreifen
Re: Algorithmen[Prog1]
dann halt so:
Über mich
* Name: Markus Roth
* Alter: 22 Jahre
* Semester: 4
* Studiengang: Informatik (D)
* eMailadresse: markus [dot] roth@student.kit.edu