我正在尝试使用嵌套循环和合并排序来实现计数倒置算法。但是,我不断收到错误消息,例如
对于嵌套循环实现。而且嵌套循环算法有时不起作用(它有几次错误地返回0)。而且归并排序算法时不时崩溃,有错误提示
double free or corruption (out)
并像嵌套循环算法一样错误地返回 0。在我看来,主要也不能很好地工作..
最佳答案
count_inversions_fast(array, (int)sizeof(array)) << endl;
您无法通过这种方式使用 sizeof
确定数组的运行时大小。它将始终是 sizeof(int*)
(更普遍的是 void*
的大小)。在 32 位平台上为 4 个字节,在 64 位平台上为 8 个字节。它将始终提供恒定的编译时间大小。您需要使用:
count_inversions_fast(array, values.size()) << endl;
关于c++ - 计数倒置 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37851067/