gpt4 book ai didi

c - 冒泡排序外循环和N-1

转载 作者:行者123 更新时间:2023-12-04 10:47:33 27 4
gpt4 key购买 nike

我已经阅读了多篇关于冒泡排序的文章,但仍然难以表达我的代码为何有效,尤其是在外循环方面。

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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com