W tablicy n elementowej za pomoca algorytmu wyszukiwania binarnego wskazac na pozycje szuknej liczby.
Jak dla mnie wszystko super a jednak nie działa :)
#include <iostream>
#include <cstdlib>
#include <time.h>
using namespace std;
int n; //ilosc elementow w tablicy
int i; // licznik dla petli for rysujacej tablice
int no_arr; // wybarny numer ktorego pozycje chcemy poznac
int l; // lewy - pierwszy element talbicy od lewej
int p; // prawy - ostatni element tablicy
int s; // srodkowy - centralny element przedzialu
int main()
{
srand(time(NULL));
cout << "Ilu elementowa tablice chcesz stworzyc: " << endl;
cin >> n;
int tablica[n];
cout << "Oto tablica wypelniona losowymi wartosciami posortowanymi rosnaco : " << endl;
for(i=0;i<n;i++)
{
tablica[i]=rand()%10+(i*10);
}
for(i=0;i<n;i++)
{
cout << "|" << tablica[i] << "|";
}
cout << endl;
l=0; // POCZATEK INSTRUKCJI WYSZUKIWANIA
p=n-1;
s=(l+p)/2;
cout << tablica[l] << " wartosc pierwszego elementu tablicy" << endl;
cout << tablica[s] << " wartosc centralnego elementu tablicy" <<endl;
cout << tablica[p] << " wartosc ostatniego elementu tablicy" <<endl;
cout << "Wprowadz numer: " << endl;
cin >> no_arr;
do
{
if(no_arr==tablica[s])
{
cout << "Element na pozycji " << s << endl;
break;
}
else if (tablica[s]<no_arr)
{
l=s+1;
s=(l+p)/2;
}
else
{
p=s-1;
s=(l+p)/2;
}
} while (no_arr == tablica[s]);
cout << "Element na pozycji " << s << endl;
return 0;
}
Będę wdzięczny za wszelkie wskazówki.
Pozdrawiam,
Witek