如何在while循环中找到迭代次数-操作计数

ShippyDippy

我对如何在while循环中进行操作计数(特别是迭代次数)感到困惑。我确实了解如何找到常规循环(从0到n)以及二进制搜索(log2n)的迭代次数,但是这段代码利用了true和false的情况。迭代次数将取决于“更多”为true和“找到”为false。

最糟糕的情况是什么?找不到项目?在下面的代码中,带注释的部分是该行的操作计数。

列表是N个节点的链接列表结构:

void FindItem(Node *list, Item item, Node *&loc, bool &found){
    bool more = true;                 // 1
    loc = list; found = false;        // 2
    while (more && !found) {          // (number of iterations)
        if (item < loc->info)         // 2 * (number of iteration)
            more = false;             // (0 or 1)*number of iterations
        else if (item == loc->info)   // 2 * (number of iteration)
            found=true;               // (0 or 1)*number of iterations
        else {
            loc = loc->next;          // (0 or 2) * (number of iteration)
            more = (loc != NULL);     // (0 or 2)*number of iterations
        }
    }
}
列夫·M。

这看起来像是学校练习或家庭作业的问题。您需要在纸上回答的事实几乎可以证实这一点。

因此,您正在寻找的可能是“ Big O ”复杂性。在这种情况下,您正在看一个简单的0 .. n循环,您声称知道该循环,因为该循环最多可以遍历整个列表。

条件变量的名称及其more自身的条件是一个清晰的线索,表明该代码不过是对排序列表的严格搜索。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在python的for循环中操作迭代器?

如何在while循环中修复此计数器?

如何在 github 操作中获取存储库的提交计数?

未使用循环计数器定义的 VHDL 比较操作

如何在循环中执行异步操作

如何监听“计数”变量的变化并根据其值触发操作

Powershell:如何访问和操作从.CSV生成的“计数”

如何根据 TWIG 中的子值操作计数?

在 ndb 查询中找到的实体计数(用于定价)是否与 get 操作相同?

如何在Java中找到子字符串的计数

如何在方法sort()中找到比较计数

如何在sql中找到行的多个值计数?

如何在pyspark中找到重复值的总和和计数?

如何在Node.js的while循环中处理异步操作?

如何在 while 循环中创建 if 语句以仅在某些行上执行某些操作?

如何修复在while循环中不起作用的计数

如何使用原子计数器计算不同线程上随机发生的操作的操作顺序?

如何在Shell脚本中限制for循环中的迭代次数

如何在PHP的foreach循环中重置计数?

如何在foreach循环中增加计数

如何在Ruby循环中增加计数器

如何在foreach循环中求和计数查询?

如何在while循环中找到最大值和最小值 - c

计算while循环中的迭代次数

如何在Linux中找到Netlink操作的来源?

如何在连接操作的结果中找到重复值?

如何在Python中找到当前的操作系统?

如何在LLVM中找到操作数的定义点?

在While循环中重置计数器