Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben

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.

post-41287-14430448692329_thumb.png

Geschrieben

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).

Geschrieben

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.

Geschrieben (bearbeitet)

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:


int top;

int bottom;

int current;

Bearbeitet von smash
  • 1 Jahr später...

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...