Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <iostream>
- #include <fstream> //reikalinga, norint nuskaityti duomenis is failo ir irasyti juos i faila
- void skaitymas (int &n, int arr[]);
- //-----------------------------
- using namespace std;
- int binarySearch(int arr[], int l, int r, int x) // l - pirmas elementas, r - paskutinis, x - ieskomas elementas
- {
- while (l <= r)
- {
- int m = l + (r-l)/2;
- // Patikrina ar elementas nera vidurinis
- if (arr[m] == x)
- return m;
- // Jeigu x didesnis, ignoruoja visa kaire puse
- if (arr[m] < x)
- l = m + 1;
- // Jeigu x mazesnis, ignoruoja visa desine puse
- else
- r = m - 1;
- }
- // Jeigu atsiduriame cia , elementas neegzistuoja
- return -1;
- }
- int main(void)
- {
- ofstream rf ("rezultatai.txt");
- int arr[100],j;
- int n = sizeof(arr)/ sizeof(arr[0]);
- int x ;
- skaitymas (j, arr);
- cout << "Iveskite ieskoma elementa: " ;
- cin >> x;
- int result = binarySearch(arr, 0, n-1, x);
- if (result == -1){
- rf << "Toks elementas neegzistuoja";
- }
- else rf << "Toks elementas egzistuoja, jo numeris: " << result+1 << endl;
- rf.close(); //failas uzdaromas
- return 0;
- }
- //-----------------------------
- void skaitymas (int &j, int arr[])
- {
- ifstream df("duomenys.txt");
- df>>j;
- for(int i = 0; i<j; i++)
- df>>arr[i];
- df.close();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement