Insertion Sort mit Binärer Suche



  • Hi Experten,

    kann mir evtl. jemand dabei helfen, den insertion sort mit binärer Suche zu implementieren:

    Mein insertionsort sieht so aus:

    int main(int argc, char** argv) {
        const int max =10;
        int n=0, zahl; //n ist Schrittzähler
        int A[max]={0};
    
        do{
            cout << "Bitte eine Zahl eingeben: ";
            cin >> zahl;
            A[n] = zahl; //Schreibt zahl an n-te stelle des Arrays
            if (zahl !=0) n++;
        }while (zahl !=0 && n<max);
    
        for (int i=1;i<n; i++) { //durchläufe
            int tmp =A[i]; //schreibt den Wert von i-ter Stelle in tmp
            int j = i-1;
    
            while (j>0 && tmp<A[j]) { //verschieben Größerer Elemente
                A[j+1] = A[j];
                j--;
            }
            A[j+1] =tmp; //Einfügen an die Richtige Stelle
    
        }
        for ( int i = 0; i < n ; i++) //Ausgeben
            cout << A[i] << " ";
        cout << endl;
    
        return 0;
    }
    
    int key, pos;
    int left, right, mid;
    bool found = false;
    cout << "Suche nach: ";
    cin >> key;
    left = 0;
    right = n - 1;
    while (left <= right) {
        mid = (left + right) / 2; //Median bestimmen
        if (key < A[mid]) right = mid - 1;
        else if (key > A[mid]) left = mid + 1;
        else { // gefunden
            found = true;
            pos = mid;
            break;
        }
    }
    if (!found)
        cout << "Element nicht vorhanden!!"
            << endl;
    else
        cout << "Element liegt an Stelle " << pos << endl;
    

    Danke euch schon mal für eure Hilfe



  • Nein



  • Hä, ich sehe das Problem nicht, du hast die Sachen doch schon? 😕


Anmelden zum Antworten