Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- int bisekcyjne(int n,int szukana,int liczby[])
- {
- int poczatek=0;
- int koniec=n;
- int srodek;
- while(poczatek<=koniec)
- {
- srodek = (poczatek + koniec)/2;
- if(liczby[srodek] == szukana)
- return srodek+1;
- if(liczby[srodek] > szukana)
- koniec = srodek - 1;
- else
- poczatek = srodek + 1;
- }
- return 0;
- }
- int liniowe(int n,int szukana,int liczby[])
- {
- int k=0;
- for(int i=0;i<n;i++)
- {
- if(liczby[i]==szukana)
- {
- k=i+1;
- break;
- }
- }
- if(k==0) return 0;
- else return k;
- }
- int main()
- {
- int n,ileros=0,pom=0;
- cout<<"Podaj ile liczb" <<endl;
- cin>>n;
- int liczby[n];
- while(pom==0)
- {
- for(int i=0;i<n;i++)
- {
- cout<<"Podaj element tablicy nr "<<i+1<<"."<<endl;
- cin>>liczby[i];
- }
- ileros=0;
- for(int i=0;i<n-1;i++)
- {
- if(liczby[i]<liczby[i+1]) ileros++;
- }
- if(ileros==n-1)
- {
- cout<<"Ciag jest rosnacy"<<endl;
- pom=1;
- }
- else
- {
- cout<<"Ciag nie jest rosnacy, sprobuj jeszcze raz."<<endl;
- pom=0;
- }
- }
- int szukana;
- cout<<"Podaj szukana liczbe: "<<endl;
- cin>>szukana;
- int wybor;
- cout<<"Ktorym sposobem wyszukac?"<<endl<<"1.Liniowo"<<endl<<"2.Bisekcja"<<endl;
- cin>>wybor;
- int index;
- switch(wybor)
- {
- case 1:
- index=liniowe(n,szukana,liczby);
- if(index>0)cout<<"Szukana liczba jest na "<<index<<" miejscu."<<endl;
- else cout<<"Brak szukanego elementu"<<endl;
- break;
- case 2:
- index=bisekcyjne(n,szukana,liczby);
- if(index>0)cout<<"Szukana liczba jest na "<<index<<" miejscu."<<endl;
- else cout<<"Brak szukanego elementu"<<endl;
- break;
- default:
- cout<<"Błedny wybor."<<endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement