考虑到一些数字和数量,我必须按升序对它们进行排序,然后输出完成了多少次传递和掉期。为什么不起作用?另外,我想用一个向量来解决这个问题;我将矢量传递给函数并正确调用它吗?
.coverImage {
transition: background 1s;
}
答案 0 :(得分:0)
您不会在冒泡排序的迭代之间重置x
。在外环x
的第一次迭代等于1之前,会发生什么。然后运行内部while
循环,直到x
变为length
,然后转到外循环的下一次迭代。在下一次迭代中,x
永远不会被重置,因此它仍然等于length
,所以在第二次迭代中没有任何反应,内部循环立即中断而不做任何工作。你进入外循环的第三次迭代,没有任何反应。特别是,您的数组永远不会被排序,因此外部while
循环永远不会中断,程序永远不会完成(并且永远不会打印任何内容)。
要修复它,只需在循环内移动x = 1
,如下所示:
...
while(!isSorted(myData))
{
x = 1;
int trash = 0;
...