Hallo ich muss einen Algorithmus für die Fibonacci-Suche schreiben. Meine Frage ist nun ob das Array nur jeweils so lang seien darf wie eine der Fibonaccizahlen groß ist, oder ist die Länge egal ?
Mfg Freddi
Ergebnis 1 bis 6 von 6
Fibonacci-Suche
Diskussion über Fibonacci-Suche in Algorithmik der Kategorie Programmierung; Hallo ich muss einen Algorithmus für die Fibonacci-Suche schreiben. Meine Frage ist nun ob das Array nur jeweils so lang ...
- 13.05.2010, 18:55 #1Reg.-Benutzer
- Reg.-Datum
- 13.05.2010
- Beiträge
- 2
Fibonacci-Suche
- 14.05.2010, 03:53 #2Reg.-Benutzer
- Reg.-Datum
- 07.04.2007
- Beiträge
- 148
Ich habe den Algorithmus weder gelernt noch implementiert. Aber es doch anscheinend darum eine der Fibonaccizahlen aus der Fibonacci-Reihe zu finden, richtig?
Die Reihe ist doch unendlich. Also musst du doch irgendwie die Anzahl einschränken. Von mir aus willkürlich N < 100 oder so. Geht das denn nicht aus der Aufgabe hervor?
Außerdem basiert doch die Fibonacci-Reihe auf der Beziehung, siehe Anhang. Das bedeutet ganz konkret, dass z.B. die vierte Zahl der Reihe = 2 ist. Also egal ob ich den index mit 0 oder 1 beginne ist der Index ungleich der Fibonaccizahl. Ausnahmen bestätigen die Regel und sind rein zufällig.
- 14.05.2010, 10:10 #3
Vor dem Durchlauf des Algorithmus könntest du abfragen, wie viele Fibonacci-Zahlen berechnet werden sollen. Das ist dann die Größe deines Arrays (Alternativ wäre eine Arraylist).
- 15.05.2010, 15:34 #4Reg.-Benutzer
- Reg.-Datum
- 13.05.2010
- Beiträge
- 2
Ich hab mich wahrscheinlich ein bisschen falsch ausgedrückt... ich muss einen Algorithmus schreiben der ähnlich der Binären Suche, den Array nicht in der Mitte teilt, sondern den Array im Verhältnis der Fibonaccizahlen. Ich weiß jetzt nur nicht, ob der Array dann eine beliebig lange Länge haben darf, oder einer der Fibonaccizahlen entsprechen muss, um ihn dann in weitere kleinere Bereiche aufteilen zu können.
- 16.05.2010, 01:16 #5Reg.-Benutzer
- Reg.-Datum
- 07.04.2007
- Beiträge
- 148
Wie gesagt, ich habe den Algorithmus nicht gelernt, aber wenn ich dich und das was ich kurz gegoogelt habe richtig verstehe, ist der einzige Unterschied zwischen der binären Suche und der Fibonnacisuche, dass der Array an unterschiedlichen Stellen geteilt wird.
Ich behaupte einfach mal, das du also jedes Teil-Array mit N > 1 teilen kannst und müsstest. Ich meine wäre die Alternative, wenn du zu diesem Zeitpunkt das richtige Element noch nicht gefunden hast.
Vielleicht solltest du dir mal Binärbäume und Suchbäume anschauen.
Außerdem würde ich den Array nicht wirklich in Teile zerlegen oder neue Arrays erzeugen. Stattdessen würde ich mehrere Variablen für die Begrenzung des Teilbereichs benutzen in dem gerade gesucht wird. Z.B:
Code:int top; int bottom; int current;
Geändert von smash (16.05.2010 um 01:26 Uhr)
- 11.11.2011, 09:49 #6Reg.-Benutzer
- Reg.-Datum
- 11.11.2011
- Beiträge
- 1
Ich weiß natürlich, dass ich mich viel zu spät melde, um noch helfen zu können. Aber da hier noch keine richtige Antwort zur Lösung des Problems gegeben wurde, und die Lösung evtl. immer noch interessant ist, hier mein Hinweis.
Eine Erklärung und ein einfacher Algorithmus dazu ist zu finden in einem Artikel über Ein- und mehrdimensionale Fibonacci Suche von Klaus-E. Schulz
Aktive Benutzer
Aktive Benutzer
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
Ähnliche Themen
-
Kommunikation Website Suche -> MS Index Server
Von T.Jansen im Forum .NETAntworten: 0Letzter Beitrag: 16.10.2009, 08:43 -
Suche nach Arbeit bis Ausbildungsbeginn
Von keine_Ahnung im Forum Jobsuche, Bewerbung und ZeugnisseAntworten: 11Letzter Beitrag: 18.03.2009, 11:28 -
suche Terminalserver mit Anwedungskontrolle
Von ava2k3 im Forum Windows BetriebssystemeAntworten: 2Letzter Beitrag: 09.03.2009, 07:32 -
Suche Buch für Cisco Cat OS
Von Crash2001 im Forum Networking TechnologiesAntworten: 12Letzter Beitrag: 12.04.2008, 02:19 -
!!! Suche <-> Suche <-> Suche !!!
Von ADDI im Forum Prüfungsaufgaben und -lösungenAntworten: 1Letzter Beitrag: 28.08.2002, 11:33


LinkBack URL
About LinkBacks
Zitieren