- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经阅读了多篇关于冒泡排序的文章,但仍然难以表达我的代码为何有效,尤其是在外循环方面。
for (int i = 0; i < (n - 1); i++)
{
for (int j = 0; j < (n - i - 1); j++)
{
if (array[j] > array[j + 1])
{
int temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
对于任何长度为 n 的数组,最多可以进行 n-1 次成对比较。也就是说,如果我们在 i < n-1 处停止,我们永远不会看到最终元素。如果在最坏的情况下,数组的元素(我在这里认为是整数)的顺序相反,我们就不能假设它在正确的位置。那么,如果我们从不检查外循环中的最终数组元素,这怎么可能起作用?
最佳答案
数组索引是从 0 到 n-1 完成的。如果数组中有 10 个元素,索引将为 n-1。因此,首先,将进行内循环 (n-1) 比较的迭代。冒泡排序的第一遍会将最大的数字冒泡到它的位置。
在下一次迭代中 (n-1-1) 迭代将发生,它会将第二大值冒泡到它的位置,依此类推,直到对整个数组进行排序。
关于c - 冒泡排序外循环和N-1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39548822/
在以下python代码中: narg=len(sys.argv) print "@length arg= ", narg if narg == 1: print "@Usage: in
我需要遍历三个列表并处理每个组合。最外层和第二级循环(list1/list2)的顺序取决于一些排序规则。此外,我在最后一个 (list3) foreach 循环之前和之后都有一些逻辑。ProcesPa
这个问题在这里已经有了答案: How do I break out of nested loops in Java? (37 个回答) 关闭6年前. 如果我在循环中有循环,并且一旦满足 if 语句我想
谁能解释一下这个算法的时间复杂度是多少? for (i = 1; i = n + n/2 + n/3 ... n/n但是是 < n + 1 + n/2 + 1 + n/3 + 1 + n/4 + 1.
我将更新从 foreach 循环生成的特定 ID 的值字段。 $sql = "SELECT `user_id`, max(case when `meta_key` = 'link' the
我是一名优秀的程序员,十分优秀!