Wyszukiwanie binarne w aplikacji bazodanowej

0

Dzień dobry,

Moim zadaniem jest zrobić aplikacje bazodanową z wyszukiwaniem binarnym i wybranymi przeze mnie dwoma algorytmami sortującymi. Zaciąłem się na wyszukiwaniu binarnym, mianowicie gdy generuje mi losową tablice program wyświetla mi menu i po wybraniu wyszukiwania binarnego zamiast posortować mi tablice, odszukać podaną liczbę i zmierzyć czas tej operacji program przestaje działać :

#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;

clock_t start, stop;
double czas;

int liczba, lewa, prawa, s, rozmiar, *tablica;
int n;


void sortowanie_babelkowe(int tab[], int n) // SORTOWANIE BĄBELKOWE FUNKCJA
{
    for (int i = 0; i < n; i++)
        for (int j = 1; j < n - i; j++) // pętla wewnętrzna
            if (tab[j - 1] > tab[j])
                // zamiana miejscami
                swap(tab[j - 1], tab[j]);
}
void WyszukiwanieBinarne()
{
    cout << "Podaj jaki element znalezc:";
    cin >> liczba;
    lewa = 0;
    prawa = rozmiar - 1;
    while (true)
    {
        if (lewa > prawa)
        {
            cout << "Nie odnaleziono szukanego elementu" << endl;
            break;
        }
        s = (lewa + prawa) / 2;
        if (tablica[s] == liczba)
        {
            cout << "Odnaleziono liczbe " << liczba << " pod indeksem " << s + 1 << endl;
            break;
        }
        else if (tablica[s] < liczba)
            lewa = s + 1;
        else
            prawa = s - 1;
    }
}
void Menu()
{
    unsigned int wybor;
    while (1)
    {
        cout << "1.Wyszukiwanie binarne" << endl;
        cout << "0. Koniec bazy" << endl;
        cout << "Wybierz opcje:";
        cin >> wybor;
        switch (wybor)
        {
            case 1:

                cout << "Nasza tablica juz posortowana: " << endl;
                sortowanie_babelkowe(tablica, rozmiar);
                for (int j = 0; j < rozmiar; j++)
                {
                    cout << tablica[j] << " ";
                }
                cout << endl;
                start = clock();
                WyszukiwanieBinarne();
                stop = clock();
                czas = (double)(stop - start) / CLOCKS_PER_SEC;
                cout << endl << "czas wyszukiwania binarnego:" << czas << " s" << endl;
                break;
            case 0:
                return;
        }
    }
}

int main()
{
    srand(time(NULL));
    cout << "Podaj rozmiar tablicy:";
    cin >> rozmiar;
    int* tablica = new int[rozmiar];
    for (int i = 0; i < rozmiar; i++)
    {
        tablica[i] = rand() % rozmiar;

        cout << tablica[i] << " ";
    }
    cout << endl;

    Menu();
    return 0;
}

Bardzo proszę o pomoc nie e wiem czemu się tak dzieje :(

1 użytkowników online, w tym zalogowanych: 0, gości: 1