Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- void printArr(int arr[], int arrSize)
- {
- for (int i{ 0 }; i < arrSize; ++i)
- {
- std::cout << arr[i] << ' ';
- }
- std::cout << '\n';
- }
- void sortBuble(int arr[], int arrSize)
- {
- int tmp{};
- for (int head{ 0 }; head < arrSize; ++head)
- {
- for (int tail{ arrSize - 1 }; tail > head; --tail)
- {
- if (arr[tail] < arr[head])
- {
- tmp = arr[tail];
- arr[tail] = arr[head];
- arr[head] = tmp;
- }
- }
- }
- }
- void randomizeArr(int arr[], int arrSize)
- {
- for (int i{ 0 }; i < arrSize; ++i)
- {
- arr[i] = rand() % 101;
- }
- }
- int main()
- {
- const int arrSize{ 100 };
- int arr[arrSize];
- //int arr[arrSize]{ 6,1,4,2,8,9,11,3,2,1 };
- //int arr[arrSize]{ 1,1,1,2,2,9,11,1,2,1 };
- //int arr[arrSize]{ 1,2,3,4,5,6,7,8,9,10 };
- //int arr[arrSize]{ 1,2,3,4,5,6,7,9,8,7 };
- //int arr[arrSize]{ 10,9,8,7,6,5,4,3,2,1 };
- //int arr[arrSize]{0};
- randomizeArr(arr, arrSize);
- sortBuble(arr, arrSize);
- printArr(arr, arrSize);
- int key{ 1 };
- int left{ 0 };
- int right{ arrSize - 1 };
- int mid{};
- std::cout << "Enter search key: ";
- std::cin >> key;
- while (true)
- {
- std::cout << "Finding...";
- mid = (left + right) / 2;
- if (key == arr[mid]) { std::cout << "Found! Index: " << mid << '\n'; break; };
- if (key < arr[mid]) { right = mid - 1; std::cout << " left side\n"; };
- if (key > arr[mid]) { left = mid + 1; std::cout << " right side\n"; };
- if (left > right) { std::cout << "Not found!\n"; break; }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement