当我调用我的冒泡排序对策函数数组未排序时出现问题。
Hello Alice
Hello Bob
Hello Rick
Your age is None
Hello John
Your age is 30
实际输出:5,4,3,2,1,
预期输出:1、2、3、4、5,
答案 0 :(得分:2)
if(vidx == n)
bubble(arr,n-1,0);
return;
这就是为什么我主张始终使用大括号 的原因。照原样,该代码等效于:
if(vidx == n){ bubble(arr,n-1,0); }
return;
bubble
函数的主体大部分无法访问。
编辑:顺便说一句,我注意到剩下的两个错误:
vidx
可以达到数组的长度,因此vidx+1
的索引将超出末尾,这可能会导致问题*(arr+vidx) <= *(arr+vidx+1)
)时,无需进行进一步递归即可将其放到函数结尾,从而过早停止排序。