Binäre suche mit Java, system falls Zahl nicht vorhanden?

Moin,

Folgendes:

Ich habe ein array mit 25.000 Feldern, in diesem sind aufsteigend quadratzahlen gespeichert. Das Programm fragt aktuell ab nach welcher Zahl man sucht und sucht dann systematisch das Array ab mittels annäherung. Ich hab nur absolut keine idee wie ich es einbauen kann, dass er merkt wenn die Zahl nicht vorhanden ist. Meine idee war, das er die Variable des letzten versuchs, mit der des aktuellen versuchs dividiert und wenn das Ergebnis = 0 ist, soll er ausgeben das die zahl nicht vorhanden ist. Leider passiert es dadurch aber manchmal das er anzeigt das die Zahl nicht vorhanden ist obwohl sie das ist, immer dann wenn er ein Feld neben der gesuchten Zahl sucht. Hier mal der relevante Teil des Codes:

int resultIndex;
int bereich = 12500;
int alg = 6250;
int bereich2 = 0;

while(true)
{


    if(quadratZahlen[bereich] < zahl)
    {
        bereich = bereich + alg;
        alg = alg / 2;

    }
    else if(quadratZahlen[bereich] == zahl)
    {
        resultIndex = bereich;
        break;
    }
    else if(quadratZahlen[bereich] > zahl)
    {
        bereich = bereich / 2;

        alg = bereich / 2;

    }


    int test = bereich - bereich2;

    if (test == 0)
    {
        resultIndex = -1;
        break;
    }

    bereich2 = bereich;

}

bereich2 ist die variable der letzten suche

bereich die der aktuellen suche

alg dient nur zur neu berechnung von bereich wenn die Zahl nicht gefunden wurde

resultIndex zeigt den Platz der gefundenen Zahl

Computer, Software, Studium, Mathematik, Technik, programmieren, Java, Array, Entwicklung, Informatik, Programmiersprache, Softwareentwicklung, Algorithmus, binär, Programmierung Java, IntelliJ IDEA
Bachelorarbeit - Mit Java Grundkenntnisse eine Android-App entwickeln?

Hallo!

Ich stehe gerade vor meiner Bachelorarbeit und bin gerade dabei mir ein passendes Thema zu überlegen. Ich möchte gerne was im Bereich Softwarentwicklung (java) machen.

Während meines Studium habe ich mich ein wenig mit Java beschäftigt und in der letzten Zeit habe ich mich die Grundkenntnisse in Java nochmal angeeignet. War für mich zwar nicht ganz einfach, da ich in der Vergangenheit nicht so viel mit der objektorientierung zu tun gehabt habe, aber einigermaßen hat das schon geklappt.

Allgemeines Verständnis über Programmieren habe ich (VBA, ein wenig Pascal, JavaScript). Nun habe ich mir ein Thema überlegt und bin gerade am Überlegen ob ich mich mit einer Einarbeitungszeit von ca. 1 - 2 Monaten genügend Kentnisse im Bereich der Entwicklung von Java/Android-Apps aneignen kann, um anschließend in ca. 1 1/2 Monaten die Implementierung abzuschließen. So wahnsinnig komplex währe die Anwendung meiner Meinung nach nicht. Im Grunde geht es um folgendes:

  • speichern/auslesen von Kundendaten über eine Datenbank
  • Bearbeiten von Kundendaten
  • Kunden nach bestimmten Kriterien filtern
  • bestimmte Mails mit der JavaMail API auslesen und nach bestimmten Informationen suchen (habe ich schon mal versucht, hat auch ganz gut geklappt)
  • evtl. noch das einbinden bon Google Maps (Alle Kunden sind in einer Google Maps Karte quasie markiert und wenn ich mich diesem Standort auf x Metern nähere, soll die App dies erkennen und in eine Liste abspeichern)

Letzteres muss man mal sehen, kommt drauf an wie "komplex" die Realisierung ist.Zusätzlich sollte das vom Layout einigermaßen ansprechend ausschauen.

Ich weiß, dass ich mich wohl neben Java noch ein wenig in XML einarbeiten muss und die Architektur eine andere ist, aber Java haben beide Architekturen (Pc/Smartphone) gemeinsam.

Wie sehr ist die Umstellung von der Entwicklung auf herkömmliche Weise und die Enwicklung auf Android Geräte ? Jemand Erfahrungen ? Wie hat die Einarbeitung (z.B. der Zeitaufwand) mit der Enwicklung von Apps geklappt ? Was glaubt ihr wie viel Zeit man in etwas benötigt um Anwendung (wie oben beschrieben) und einem Grundlagenwissen in Java (jedoch ffortgeschrittene Programmierkentnisse im allgemeinen) zu realisieren ? Ich bedanke mich =)

Computer, Technik, programmieren, Java, Android, Bachelorarbeit, Technologie, XML, GUI, Programmierung Java, App entwickeln

Meistgelesene Fragen zum Thema Programmierung Java