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 :(