使用语句“查找”是否会导致我的 O(n) 表示法转到 C++ 中的 O(n^2) 表示法?

问题描述 投票:0回答:0

最近,我尝试开始竞争性编程,对“find”语句非常好奇。我们知道 find 语句,就像下面的例子一样,可以代替第二个 for 循环。通过替换它,我很好奇时间符号是否仍然保持不变,O(n^2) 还是减少到 O(n)?谢谢你的回答。

    for(int i = 0; i < string.size(); i++) {
        auto it = find(string.begin(), string.end(), 3);
        int index = it - string.begin();
        vector[i] = string[index - 1];
    }


    int d;
    for(int i = 0; i < s2.size(); i++) {
        for(int u = 0; u < 26; u++) {
            if(u == string[i]) {
                d = u;
            }
        }
        vector[i] = string[d - 1];
    }

我正在研究这个问题。但是,我仍然很困惑。对不起,如果这是一个多余的问题。

c++ time big-o
© www.soinside.com 2019 - 2024. All rights reserved.