![]() |
1
3
请注意,这些优化都没有改变BubbleSort的渐进(大O)复杂性(保持不变
|
![]() |
2
2
一个简单的优化是从i+1索引开始第二个循环:
由于您已经将所有内容排序到索引i,因此无需再次对其进行迭代。这可以为您节省50%以上的比较—在这种情况下,原始算法中的比较是10对25。 |
![]() |
3
0
为了了解算法在计算资源使用方面的效率,与计算机体系结构或时钟频率无关,您需要了解大Oh符号。它基本上可以帮助您分析最坏情况下,随着输入大小的增加,算法的运行时间或内存使用情况。 总之,算法的运行时间将属于以下类别之一(从最快到最慢); O(1):恒定时间。发音为(Oh/1)。最快的时间。 O(lg n):对数时间。发音(对数n的Oh)。比线性时间快。 传统上,这是搜索的最快时限。 O(n):线性时间。发音(n的Oh,n是输入的大小,例如 阵列)。通常当你需要检查 您的输入。 O(nlgn):在 元素列表。 O(n**2):n平方的Oh。二次时间。当我们 嵌套循环。 O(2**n):真的,真的很大!升到n的幂的数字比 n升到任意幂。
在本例中,您使用的是嵌套循环,即O(n
2). 我编写的代码使用一个while循环,其增长复杂性为O(n),比O(n)快
2). 我还没有在一个很大的
注意:在示例列表(k)中,我们只需在列表中循环三次,就可以按升序对其进行排序。如果将while循环更改为这行代码
|
![]() |
Cute dog · 如何将文本与重新排序的图像相匹配? 1 年前 |
|
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
![]() |
Rohan Mittal · 按dict值对dict排序 2 年前 |
![]() |
Pikachu620 · 可以对事件列表进行排序吗? 2 年前 |
![]() |
Saif · 排序时python如何决定何时调用比较器? 2 年前 |
![]() |
tryingmybest09 · 设置出生日期排序不正确 2 年前 |