Announcement

Collapse
No announcement yet.

BinSearch

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • BinSearch

    Hallo

    Ich habe nen binsearch code:

    int binsearch(int *array, int size, int iLookup){

    //array teilen
    int rechts = size/2;

    if (*(array+(rechts-1)) == iLookup){
    return temp;
    }
    if( *(array+(rechts-1)) > iLookup){

    int groesse = size - rechts;
    binsearch(array, groesse, iLookup);
    temp = + 0;
    return temp;
    }

    if( *(array + (rechts-1)) < iLookup){

    int *zeiger = array + rechts;
    int groesse= rechts;
    temp =+ *zeiger;
    binsearch(zeiger, groesse, iLookup);
    return temp;

    }else{
    return -1;
    }

    }


    und rufe ihn so auf:

    int is_drin = binsearch(parray1, groesse1, 3);
    if(is_drin > -1){
    cout << "richtig" << endl;
    cout << is_drin << endl;
    }else{
    cout<< "fehler" <<endl;


    die variablen ergeben sich so:

    int groesse1 = (sizeof(array1) / sizeof(*array1)) ;

    int array1[5] = { 1, 2, 3, 4, 5 };
    int *parray1 = NULL;
    parray1 = &array1[0];


    mein problem ist jetzt:

    dass ich die stelle von dem gefunden element zurückhab will dazu habe ich eine globale variable

    int temp;

    diese liefert aber immer 1 oder wenn ich eine zahl ab 3 suchen will mact das programm gar nichts mehr


    kann mir jemand helfen?


    lg steffi

  • #2
    Vielleicht schaust du nochmal

    http://de.wikipedia.org/wiki/Bin%C3%A4rer_Suchbaum

    Nutze die bin. search der STL

    http://www.sgi.com/tech/stl/binary_search.html
    Zuletzt editiert von Christian Marquardt; 27.05.2012, 18:59.
    Christian

    Comment

    Working...
    X