Cod sursa(job #2782799)

Utilizator LucaSimionovLuca Mihai Simionov LucaSimionov Data 13 octombrie 2021 09:31:13
Problema Cautare binara Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.22 kb
#include <iostream>

using namespace std;

int n, x, a[10000];

int cautbinar_0 (int n, int x, int a[])
{
    int st = 1;
    int dr = n;
    int poz = -1;

    while (st <= dr)
    {
        int mid = (st + dr) / 2;
        if (x <= a[mid]) dr = mid - 1;
        else
        {
            if (x == a[mid]) poz = mid;
            st = mid + 1;
        }
    }
    return poz;
}

int cautbinar_1 (int n, int x, int a[])
{
    int st = 1;
    int dr = n;
    int poz = -1;

    while (st <= dr)
    {
        int mij = (st + dr) / 2;
        if (a [mij] <= x)
        {
            poz = mij;
            st = mij + 1;
        }
        else dr = mij - 1;
    }
    if (a[poz] <= x) return poz;
}

int cautbinar_2 (int n, int x, int a[])
{
    int st = 1;
    int dr = n;
    int poz = -1;

    while (st <= dr)
    {
        int mij = (st + dr) / 2;
        if (a [mij] <= x)
        {
            dr = mij - 1;
            poz = mij;
        }
        else
        {
            st = mij + 1;
        }
    }
    return poz;
}

int main()
{
    cin >> n;
    cin >> x;

    for (int i = 1; i <= n; i ++)
    {
        cin >> a [i];
    }

    i1 (n, x, a);
    return 0;
}