tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
2
ZUGRIFFE
171
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    kulturfenster kulturfenster ist offline Rookie
    Registriert seit
    Apr 2007
    Beiträge
    8
    Guten Abend,
    Ich habe eine binäre Suche geschrieben, die jedoch den gesuchten Wert im Array nicht finden will. Könnte jemand kurz einen Blick drauf werfen und mir n Tipp geben, was ich falsch gemacht habe?

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    
    package kap19;
     
    public class BinarySearch8 {
     
        private int[] a;
        public BinarySearch8(int[] a)
        {
            this.a = a;
        }
        
        public int search(int k, int from, int to)
        {
            if(from > to) return -1;
            int mid = (from + to)/2;
            
            if(a[mid] > k) return search(k, from, mid-1);
            else if(a[mid] < k) return search(k,mid+1, to);
            else return mid;
        }
        
        public static void main(String[] args)
        {
            int länge = 1000;
            int[] a = new int[länge];
            java.util.Random g = new java.util.Random();
            for(int i = 0; i < länge; i++)
            {
                a[i] = g.nextInt(länge);
            }
            
            BinarySearch8 b = new BinarySearch8(a);
            System.out.println(b.search(555, 0, a.length-1));
        }
    }

    Vielen Dank für Tipps!
     

  2. #2
    Avatar von zeja
    zeja zeja ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2006
    Beiträge
    2.962
    Deine Suche funktioniert schon ganz richtig. Allerdings benutzt du Zufallszahlen die in das zu suchende Array geschrieben werden. Und dann suchst du nach 555, aber die Zufallszahlen stellen ja nicht sicher dass die 555 überhaupt in dem Array enthalten ist.

    Achso und hinzukommt dass das Array mit den Zufallszahlen dann nicht sortiert ist. Die Binäre Suche erfordert aber ein sortiertes Array.
    Geändert von zeja (24.07.07 um 18:22 Uhr)
     

  3. #3
    kulturfenster kulturfenster ist offline Rookie
    Registriert seit
    Apr 2007
    Beiträge
    8
    ach so, stimmt.

    alles klar vielen Dank!
     

Ähnliche Themen

  1. java.util.Arrays.binarySearch als Multitool
    Von Thomas Darimont im Forum Algorithmen & Datenstrukturen mit Java
    Antworten: 0
    Letzter Beitrag: 05.01.11, 10:16
  2. Probleme mit if
    Von K4ZUY4 im Forum PHP
    Antworten: 6
    Letzter Beitrag: 01.07.06, 00:16
  3. X probleme
    Von Matrix-NTN im Forum Linux & Unix
    Antworten: 0
    Letzter Beitrag: 08.05.04, 21:56
  4. Premiere Pro Export probleme / Projekt Probleme
    Von DanielT im Forum Videoschnitt, Videotechnik & -produktion
    Antworten: 5
    Letzter Beitrag: 31.10.03, 17:48
  5. Antworten: 6
    Letzter Beitrag: 21.05.03, 12:49