[Java] brauche beispiel für binarySearch

Dieses Thema im Forum "Mac OS X Entwickler, Programmierer" wurde erstellt von fLaSh84, 01.02.2005.

  1. fLaSh84

    fLaSh84 Thread Starter MacUser Mitglied

    MacUser seit:
    25.07.2004
    Beiträge:
    1.489
    Zustimmungen:
    17
    Hallo!

    sitz grad mal wieders fürs studium über nem java programm (med. informatik - 1. semester - blutiger java anfänger)

    muss hier eine suche implementieren. da nicht vorgeschrieben ist ob wir nen eigenen algorithmus schreiben sollen oder nicht nehm ich einfach den der bei java mit dabei ist.
    mein problem ist einfach nur wie ichs ordentlich einbaue. man findet im netz und in büchern nur so allgemeine sachen wie
    Code:
    binarySearch(List list, Object key) bzw.
    binarySearch(List list, Object key, Comparator c)
    ich suche jetzt einfach nur mal nen beispielprogramm wo genau sowas implementiert ist, da ich aus dieser allgemeinen beshcreibung nicht schlau werde

    danke
     
  2. snehls

    snehls MacUser Mitglied

    MacUser seit:
    31.08.2004
    Beiträge:
    36
    Zustimmungen:
    0
    gehts dir um die Idee oder um Code ? Hier ist ein Stück Code das auf Integer-Arrays arbeitet, das Prinzip ist ja recht simpel und leicht verständlich (trotz des häßlichen Codes).

    Code:
    int BinSearch (int[] array, int key) 
    { 
      int u = 0, o = array.length ;
      while (u < o) { 
        int m = (u + o) / 2; 
        if (key == array[m] ) return m; 
        else if (key < array[m] ) o = m-1; 
        else u = m+1;
        }
    return NO_KEY;
    }
    Die Methoden die du nanntest arbeiten halt nicht auf nem Array sondern auf ner Liste und statt auf Integers auf beliebigen Objekten .....
     
  3. fLaSh84

    fLaSh84 Thread Starter MacUser Mitglied

    MacUser seit:
    25.07.2004
    Beiträge:
    1.489
    Zustimmungen:
    17
    sowas meinte ich nicht. hab selbst nen skript aus der A&D Vorlesung hier liegen, da stehen die algorithmen schon drin.
    ich will aber den bei java mitgelieferten (im paket java.util - Klasse Collections) nutzen. und um dessen implementierung gehts mir, einfach nur eine beispielklasse / -programm wo genau der binarySearch(List list, Object key) verwendet wird
     
  4. Sym

    Sym MacUser Mitglied

    MacUser seit:
    11.06.2003
    Beiträge:
    1.888
    Zustimmungen:
    30
    Hi,

    was ist das Problem? Hast Du Dir schon mal die API verinnerlicht?
    Code:
    int Collections.binarySearch(List list, Object o)
    erwartet eine Liste und das entsprechende Objekt, dass Du in der Liste suchst. Zurückgegeben wird der Index, an dem das Objekt ggf. zu finden ist.

    Z.B. so müsste das klappen (nicht getestet)
    Code:
    import java.util.ArrayList;
    
    public class Test {
        public static void main(String[] args) {
            ArrayList list = new ArrayList();
            String s1 = "bla";
            String s2 = "blub";
    
            list.add(s1);
            list.add(s2);
    
            System.out.println(java.util.Collections.binarySearch(list, s2);
    
        }
    }
    Have fun.
     
    Zuletzt bearbeitet: 01.02.2005
Die Seite wird geladen...

Diese Seite empfehlen