Autor |
Beitrag |
Marco D.
![Marco D. hat insgesamt 79.2% On-Topic und 20.8% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Marco D. hat insgesamt 79.2% On-Topic und 20.8% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Marco D. hat insgesamt 79.2% On-Topic und 20.8% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Marco D. hat insgesamt 79.2% On-Topic und 20.8% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Marco D. hat insgesamt 79.2% On-Topic und 20.8% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Marco D. hat insgesamt 79.2% On-Topic und 20.8% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Marco D. hat insgesamt 79.2% On-Topic und 20.8% Off-Topic Beiträge geschrieben. half ontopic star](./graphics/ranks/star_onofftopic.png)
Beiträge: 2750
Windows Vista
Delphi 7, Delphi 2005 PE, PHP 4 + 5 (Notepad++), Java (Eclipse), XML, XML Schema, ABAP, ABAP OO
|
Verfasst: Fr 05.10.07 23:10
C#-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| do { $swapped = false; for ($i = 0 ; $i <= Count($relevant_results) ; $i++) { if ($relevant_results[$i]->ranking_value < $relevant_results[$i+1]->ranking_value) { $temp = $relevant_results[$i]; $relevant_results[$i] = $relevant_results[$i+1]; $relevant_results[$i+1] = $temp; $swapped = true; } } } while ($swapped == false); |
Ich verwende zur Sortierung der Suchergebnisse nach Relevanz (Wert ist in ranking_value gespeichert; liegt zwischen 0 und 1) BubbleSort. Die größte Relevanz soll oben stehen. Funktioniert soweit, dass die größte Relevanz an zweiter und die zweitgrößte Relevanz an erster Stelle steht. Wie muss ich den Algorithmus abändern, damit es funktioniert?
_________________ Pascal keeps your hand tied. C gives you enough rope to hang yourself. C++ gives you enough rope to shoot yourself in the foot
|
|
r2c2
![r2c2 hat insgesamt 51.0% On-Topic und 49.0% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![r2c2 hat insgesamt 51.0% On-Topic und 49.0% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![r2c2 hat insgesamt 51.0% On-Topic und 49.0% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![r2c2 hat insgesamt 51.0% On-Topic und 49.0% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![r2c2 hat insgesamt 51.0% On-Topic und 49.0% Off-Topic Beiträge geschrieben. offtopic star](./graphics/ranks/star_offtopic_full.png) ![r2c2 hat insgesamt 51.0% On-Topic und 49.0% Off-Topic Beiträge geschrieben. offtopic star](./graphics/ranks/star_offtopic_full.png) ![r2c2 hat insgesamt 51.0% On-Topic und 49.0% Off-Topic Beiträge geschrieben. offtopic star](./graphics/ranks/star_offtopic_full.png)
Beiträge: 324
Erhaltene Danke: 2
Linux
|
Verfasst: Sa 06.10.07 08:38
Hallo
so wie ich das sehe, stimmt die Schleifenbedingung nicht. Du brichst sofort ab, wenn du einmal getauscht hast...
BubbleSort implementiert man aslo anders. Siehe:
de.wikipedia.org/wiki/Bubblesort
www.sortieralgorithm...ubblesort/index.html
r2c2.weingut-rehn.de/facharbeit.htm
mfg
Christian
_________________ Kaum macht man's richtig, schon klappts!
|
|
Heiko
![Heiko hat insgesamt 78.9% On-Topic und 21.1% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Heiko hat insgesamt 78.9% On-Topic und 21.1% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Heiko hat insgesamt 78.9% On-Topic und 21.1% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Heiko hat insgesamt 78.9% On-Topic und 21.1% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Heiko hat insgesamt 78.9% On-Topic und 21.1% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Heiko hat insgesamt 78.9% On-Topic und 21.1% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Heiko hat insgesamt 78.9% On-Topic und 21.1% Off-Topic Beiträge geschrieben. half ontopic star](./graphics/ranks/star_onofftopic.png)
Beiträge: 3169
Erhaltene Danke: 11
|
Verfasst: Sa 06.10.07 10:19
Hallo,
das ist nur von ganz paar Fehlern ![;)](images/smiles/icon_wink.gif) .
Ich hoffe, hier ist jetzte kein Fehler drin:
C#-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| $cnt = Count($relevant_results); for ($i = 0; $i<$cnt-1; $i++){ for ($j = $i; $j<$cnt-1; $i++){ if ($relevant_results[$i]->ranking_value > $relevant_results[$i+1]->ranking_value){ $tmp = $relevant_results[$i]; $relevant_results[$i] = $relevant_results[$i+1]; $relevant_results[$i+1] = $tmp; } } } |
Das müsste so stimmen, ist aber ungetestet ![;)](images/smiles/icon_wink.gif) .
PHP bietet aber schon nen ganz paar fertige Befehle (bisher nicht genutzt, aber mir bekannt ![;)](images/smiles/icon_wink.gif) ). Such einfach mal nach "sort" bei php.net. Dort findest du auch gleich die verschiedensten Fehler für php.
|
|
r2c2
![r2c2 hat insgesamt 51.0% On-Topic und 49.0% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![r2c2 hat insgesamt 51.0% On-Topic und 49.0% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![r2c2 hat insgesamt 51.0% On-Topic und 49.0% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![r2c2 hat insgesamt 51.0% On-Topic und 49.0% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![r2c2 hat insgesamt 51.0% On-Topic und 49.0% Off-Topic Beiträge geschrieben. offtopic star](./graphics/ranks/star_offtopic_full.png) ![r2c2 hat insgesamt 51.0% On-Topic und 49.0% Off-Topic Beiträge geschrieben. offtopic star](./graphics/ranks/star_offtopic_full.png) ![r2c2 hat insgesamt 51.0% On-Topic und 49.0% Off-Topic Beiträge geschrieben. offtopic star](./graphics/ranks/star_offtopic_full.png)
Beiträge: 324
Erhaltene Danke: 2
Linux
|
Verfasst: Sa 06.10.07 10:51
Den Code kann man noch optimieren, auch, wenn das der originale BubbleSort ist. Sowas wie Break(wenn bemerkt wird, dass alles schon sortiert ist) gibts in PHP doch auch, oder? Hab schon ne ganze Zeit lang kein PHP mehr gemacht. Langsam fangen die Kenntnisse an zu rosten...
Heiko hat folgendes geschrieben: |
PHP bietet aber schon nen ganz paar fertige Befehle (bisher nicht genutzt, aber mir bekannt ). Such einfach mal nach "sort" bei php.net. Dort findest du auch gleich die verschiedensten Fehler für php. |
Die hab ich ganz vergessen, jo. Ich hab die schon benutzt. Funktionieren gut. Wie weiß ich aber nicht mehr auswendig ==> kann man aber ja alles nachgucken...
Ansosnten bleibt noch zu erwähnen, dass BubbleSort nicht unbedingt der beste Algorithmus ist. Nimm lieber MinSort, InsertionSort oder QuickSort(je nach Fall):
MinSort: Einfach
InsertioonSort: Sehr gut, bei teilw. Vorsortierung
QuickSort, schnell aber rekursiv und instabil
mfg
Christian
_________________ Kaum macht man's richtig, schon klappts!
|
|
Marco D. ![Threadstarter Threadstarter](./graphics/viewtopic/threadstarter.png)
![Marco D. hat insgesamt 79.2% On-Topic und 20.8% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Marco D. hat insgesamt 79.2% On-Topic und 20.8% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Marco D. hat insgesamt 79.2% On-Topic und 20.8% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Marco D. hat insgesamt 79.2% On-Topic und 20.8% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Marco D. hat insgesamt 79.2% On-Topic und 20.8% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Marco D. hat insgesamt 79.2% On-Topic und 20.8% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Marco D. hat insgesamt 79.2% On-Topic und 20.8% Off-Topic Beiträge geschrieben. half ontopic star](./graphics/ranks/star_onofftopic.png)
Beiträge: 2750
Windows Vista
Delphi 7, Delphi 2005 PE, PHP 4 + 5 (Notepad++), Java (Eclipse), XML, XML Schema, ABAP, ABAP OO
|
Verfasst: Sa 06.10.07 13:39
Ich könnte jetzt Heikos Code kopieren und einfügen. Jedoch wäre das für mich nicht zufriedenstellend.
Meinen Original-Code (ganz oben) habe ich nach folgendem Pseudocode entworfen: de.wikipedia.org/wik...Formaler_Algorithmus
Warum klappt das so nicht? D.h., was unterscheidet meinen PHP- von diesem Pseudo-Code bezüglich der Funktionsweise?
_________________ Pascal keeps your hand tied. C gives you enough rope to hang yourself. C++ gives you enough rope to shoot yourself in the foot
|
|
Heiko
![Heiko hat insgesamt 78.9% On-Topic und 21.1% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Heiko hat insgesamt 78.9% On-Topic und 21.1% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Heiko hat insgesamt 78.9% On-Topic und 21.1% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Heiko hat insgesamt 78.9% On-Topic und 21.1% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Heiko hat insgesamt 78.9% On-Topic und 21.1% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Heiko hat insgesamt 78.9% On-Topic und 21.1% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Heiko hat insgesamt 78.9% On-Topic und 21.1% Off-Topic Beiträge geschrieben. half ontopic star](./graphics/ranks/star_onofftopic.png)
Beiträge: 3169
Erhaltene Danke: 11
|
Verfasst: So 07.10.07 10:07
Du hast das "n" in dem Code nicht beachtet ![;)](images/smiles/icon_wink.gif)
|
|
GTA-Place
![GTA-Place hat insgesamt 74.5% On-Topic und 25.5% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![GTA-Place hat insgesamt 74.5% On-Topic und 25.5% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![GTA-Place hat insgesamt 74.5% On-Topic und 25.5% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![GTA-Place hat insgesamt 74.5% On-Topic und 25.5% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![GTA-Place hat insgesamt 74.5% On-Topic und 25.5% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![GTA-Place hat insgesamt 74.5% On-Topic und 25.5% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![GTA-Place hat insgesamt 74.5% On-Topic und 25.5% Off-Topic Beiträge geschrieben. offtopic star](./graphics/ranks/star_offtopic_full.png)
![EE-Regisseur EE-Regisseur](graphics/ranks/regisseur.png)
Beiträge: 5248
Erhaltene Danke: 2
WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
|
Verfasst: So 07.10.07 10:16
Und es heißt solange vertauscht, spricht while ($swapped). IMHO müssen es eh drei Gleichheitszeichen sein, wenn du === false/true schreibst.
_________________ "Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
|
|
Heiko
![Heiko hat insgesamt 78.9% On-Topic und 21.1% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Heiko hat insgesamt 78.9% On-Topic und 21.1% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Heiko hat insgesamt 78.9% On-Topic und 21.1% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Heiko hat insgesamt 78.9% On-Topic und 21.1% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Heiko hat insgesamt 78.9% On-Topic und 21.1% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Heiko hat insgesamt 78.9% On-Topic und 21.1% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Heiko hat insgesamt 78.9% On-Topic und 21.1% Off-Topic Beiträge geschrieben. half ontopic star](./graphics/ranks/star_onofftopic.png)
Beiträge: 3169
Erhaltene Danke: 11
|
Verfasst: So 07.10.07 10:21
GTA-Place hat folgendes geschrieben: | Und es heißt solange vertauscht, spricht while ($swapped). |
Ne, dass ist ne repeat-until-Schlöeife dort, also eine do-while-Schleife, so wie er es schon hat. Er hat lediglich vergessen n zu verwenden (das kann man nicht rauskürzen) ![;)](images/smiles/icon_wink.gif) . Und Count-1 müsste es heißen ![;)](images/smiles/icon_wink.gif) .
GTA-Place hat folgendes geschrieben: | IMHO müssen es eh drei Gleichheitszeichen sein, wenn du === false/true schreibst. |
Ne, zwei reichen. Eine Typenüberprüfung ist hier nicht erforderlich, denn man sieht, dass nur true oder false drin sein kann. Man nutzt ===, wenn eine Funktion false, true, Strings und Zahlen gemischt ausgeben kann, ansonsten lässt man es weg ![;)](images/smiles/icon_wink.gif) .
|
|
Marco D. ![Threadstarter Threadstarter](./graphics/viewtopic/threadstarter.png)
![Marco D. hat insgesamt 79.2% On-Topic und 20.8% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Marco D. hat insgesamt 79.2% On-Topic und 20.8% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Marco D. hat insgesamt 79.2% On-Topic und 20.8% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Marco D. hat insgesamt 79.2% On-Topic und 20.8% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Marco D. hat insgesamt 79.2% On-Topic und 20.8% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Marco D. hat insgesamt 79.2% On-Topic und 20.8% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Marco D. hat insgesamt 79.2% On-Topic und 20.8% Off-Topic Beiträge geschrieben. half ontopic star](./graphics/ranks/star_onofftopic.png)
Beiträge: 2750
Windows Vista
Delphi 7, Delphi 2005 PE, PHP 4 + 5 (Notepad++), Java (Eclipse), XML, XML Schema, ABAP, ABAP OO
|
Verfasst: So 07.10.07 15:04
_________________ Pascal keeps your hand tied. C gives you enough rope to hang yourself. C++ gives you enough rope to shoot yourself in the foot
|
|
|