Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/132.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 求最小数递归算法的大O()_C++_Algorithm - Fatal编程技术网

C++ 求最小数递归算法的大O()

C++ 求最小数递归算法的大O(),c++,algorithm,C++,Algorithm,我有以下代码,我被告知findmin是O(n^2),但我看不到它 #include <iostream> #include <cstdlib> #include <ctime> int findmin(const int a[], int n); int cnt = 0; int main (void) { int num = 100; std::srand(std::time(nullptr)); int arr[num];

我有以下代码,我被告知findmin是O(n^2),但我看不到它

#include <iostream>
#include <cstdlib>
#include <ctime>

int findmin(const int a[], int n);
int cnt = 0;

int main (void)
{
    int num = 100;
    std::srand(std::time(nullptr));

    int arr[num];
    for (int i = 0; i < num; ++i)
        arr[i] = std::rand() % num;

    findmin(arr, num);
    std::cout << cnt;
    return 0;
}

int findmin(const int a[], int n)
{
    cnt++;
    if(n == 0)
        return a[0];

    int min;
    return a[n] < (min = findmin(a, n - 1)) ? a[n] : min;
}
#包括
#包括
#包括
int findmin(常数int a[],int n);
int-cnt=0;
内部主(空)
{
int num=100;
std::srand(std::time(nullptr));
int-arr[num];
对于(int i=0;iO(n)
。告诉你别的人是错的。

O(n)
。告诉你别的人是错的。

O(n)⊂ O(n^2)∧ t(n)∈ O(n)=>t(n)∈ O(n^2)

是的,
findmin
是O(n),但它因此也是O(n^2)。

O(n)⊂ O(n^2)∧ t(n)∈ O(n)=>t(n)∈ O(n^2)


是的,
findmin
是O(n),但它因此也是O(n^2)。

除了O(n^2)是O(n)的超集。所以告诉他的人都是正确的,只是不尽可能精确。@Ext3h请你详细说明。那家伙不知道他在说什么。“就是这样。我完了。”是他们面对错误的证据时的战斗口号。除了O(n^2)是O(n)的超集。所以告诉他的人是正确的,只是不尽可能精确。@Ext3h请你详细说明一下。那家伙不知道他在说什么。“就是这样。我完了。”当面对证明他们错了的时候,他们会发出战斗口号吗?这个代码有效吗?findmin(arr,100)会导致[n]中的索引越界,不是吗?这个代码有效吗?findmin(arr,100)会导致[n]中的索引越界,不是吗?