[Java] brauche beispiel für binarySearch

fLaSh84

Aktives Mitglied
Thread Starter
Registriert
25.07.2004
Beiträge
1.552
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
 

snehls

Neues Mitglied
Registriert
31.08.2004
Beiträge
36
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 .....
 

fLaSh84

Aktives Mitglied
Thread Starter
Registriert
25.07.2004
Beiträge
1.552
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
 

Sym

Aktives Mitglied
Registriert
11.06.2003
Beiträge
2.161
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:
Oben