//*************************************************************************
// PROGRAM PRZESZUKUJE TABLIBCE W CELU ZNALEZIENIA ZADANEGO ELEMENTU
//*************************************************************************
#include<iostream>
using namespace std;
int main()
{
int n; // ilosc wczytanych liczb do tablicy
int a[n]; // tablica na posortowane rosnaco liczby
int x; // szukany element w ciagu liczbowym - w tablicy
int l; // indeks lewego kranca tablicy- lewego kranca ciagu liczb
int p; // indeks prawego kranca tablicy- prawego kranca ciagu liczb
int sr; // indeks srodkowego elementu tablicy
cin>>n; // wprowadzenie ilosci liczb
for (int i=0; i<n; i++) //wprowadzanie danych do tablicy jednowymiarowej
// dane wprowadzane sa juz posortowane rosnaco
{
cin>>a[i];
}
cin>>x; // wprowadzenie szukanej wartosci liczby
l=0; // lewy kraniec ma indeks 0 bo w tablicy liczby liczymy od 0
p=n-1; // prawy kraniec przedzialu ma wartosc koncowego indeksu tablicy
while(l<=p) // dopóki lewy kraniec przedziału jest mniejszy lub równy prawemu
{
sr=(l+p)/2;
if (a[sr]==x)
{
cout<<endl<<"jest w ciagu wartosc "<<x<<" na "<<sr+1<<" miejscu"<<endl;
break;
}
if (a[sr]<x)
l=sr+1;
if (a[sr]>x)
p=sr-1;
}
if (l>p)
cout<<"nie ma "<<endl;
cin.get();
cin.ignore();
return 0;
}