Какова временная сложность данного кода для поиска? - PullRequest
0 голосов
/ 09 июня 2019

Какова временная сложность этого кода?

Я пытался решить эту проблему с помощью бинарного поиска, но это не может быть решено таким образом, пожалуйста, помогите найти сложность этого кода.


#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    cin>>n;
    int a[n];

    for(int i=0;i<n;i++)
    cin>>a[i];
        int x;
    cin>>x;
    int p=-1;
    int q=n;
    while(p+1<q)
    {
        int m=(p+q)/2;
        if(a[m]<x)
        p=m;
        else
        q=m;
    }
    cout<<"j";
}

1 Ответ

0 голосов
/ 09 июня 2019

Измените свой код на

р = т + 1;
еще
д = м-1;

Также завершается, когда вы нашли элемент. Сложность заключается в бинарном поиске, log (n).

...