c++ - 您是否将比较之前的步骤包括在排序算法的迭代次数中?

标签 c++ algorithm sorting pseudocode bubble-sort

正如问题所述,我脑子里有点空白;当您计算算法完成的步骤数时,是否必须包括尚未进行比较的步骤?

例如:

如果你有一个列表:5,3,7

然后您对其执行冒泡排序。会的;

1)比较53并将它们交换为 5>3 .现在的列表是3,5,7

2) 比较57没有变化 5<7 .现在的列表是3,5,7

3) 比较35没有预期的变化。列表还是3,5,7

4)比较57没有预期的变化。列表还是3,5,7

现在迭代次数是 4 次还是 5 次? ...还是我完全错了?

谢谢

最佳答案

恕我直言,在尚未执行任何步骤的时间点,步数 = 0。执行一个步骤后,步数 = 1。我真的无法理解你是如何走到执行 4 个步骤的地步的被认为是五个..

无论如何,请记住,它通常被分析为 O(f(n)),其中与 N 无关的术语,如 +-constant,即 +-1 或 +-100 被简单地删除。

关于c++ - 您是否将比较之前的步骤包括在排序算法的迭代次数中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22097528/

相关文章:

algorithm - 我如何检测一组点是菱形或方格

c++ - 四舍五入一个整数,使其乘以一个 float 返回一个整数

bash - -n 和 -g 在排序上有什么区别?

python - 如何在 Python 中对图形进行聚类?

c++ - nuget 引用 c++ header

c++ - 如何在 C++ 中重载运算符 [ ]?

c++ - 模板文件中的类 'does not name a type' 错误

c++ - 带有 CUDA 的 OpenCV,非常清楚的错误消息,但无法弄清楚为什么?

algorithm - 日语的自动换行算法

Python内部排序方法