Untitled

 avatar
unknown
plain_text
a year ago
1.6 kB
4
Indexable
#include <iostream>
#include <algorithm>


int getRandomNumber() {
    return rand() % 100; 
}

int binarySearch(int arr[], int low, int high, int key) {
    while (low <= high) {
        int mid = low + (high - low) / 2;
        if (arr[mid] == key) {
            return mid;
        }
        else if (arr[mid] < key) {
            low = mid + 1;
        }
        else {
            high = mid - 1;
        }
    }
    return -1; 
}

int main() {
    setlocale(LC_ALL, "Russian");
    const int size = 30;
    int B[size];

    for (int i = 0; i < size; i++) {
        B[i] = getRandomNumber();
    }

    std::cout << "Массив B: ";
    for (int i = 0; i < size; i++) {
        std::cout << B[i] << " ";
    }
    std::cout << std::endl;

    
    int A[size];
    int uniqueElements = 0;
    std::sort(B, B + size);
    for (int i = 0; i < size; i++) {
        if (i == 0 || B[i] != B[i - 1]) {
            A[uniqueElements++] = B[i];
        }
    }

    std::cout << "Массив A: ";
    for (int i = 0; i < uniqueElements; i++) {
        std::cout << A[i] << " ";
    }
    std::cout << std::endl;

    int key;
    std::cout << "Введите элемент для бинарного поиска: ";
    std::cin >> key;

    int result = binarySearch(A, 0, uniqueElements - 1, key);
    if (result == -1) {
        std::cout << "Элемент не найден." << std::endl;
    }
    else {
        std::cout << "Элемент " << key << " найден в позиции " << result + 1 << " массива A." << std::endl;
    }

    return 0;
}
Editor is loading...
Leave a Comment