为什么泡沫排序不起作用

时间:2016-10-24 22:37:40

标签: c++ bubble-sort

考虑到一些数字和数量,我必须按升序对它们进行排序,然后输出完成了多少次传递和掉期。为什么不起作用?另外,我想用一个向量来解决这个问题;我将矢量传递给函数并正确调用它吗?

.coverImage {
    transition: background 1s;
}

1 个答案:

答案 0 :(得分:0)

您不会在冒泡排序的迭代之间重置x。在外环x的第一次迭代等于1之前,会发生什么。然后运行内部while循环,直到x变为length,然后转到外循环的下一次迭代。在下一次迭代中,x永远不会被重置,因此它仍然等于length,所以在第二次迭代中没有任何反应,内部循环立即中断而不做任何工作。你进入外循环的第三次迭代,没有任何反应。特别是,您的数组永远不会被排序,因此外部while循环永远不会中断,程序永远不会完成(并且永远不会打印任何内容)。

要修复它,只需在循环内移动x = 1,如下所示:

...
while(!isSorted(myData))
{
    x = 1;
    int trash = 0;
...