【发布时间】:2019-06-09 14:30:25
【问题描述】:
我正在努力理解归并排序程序。为了理解我编写了这个程序但无法理解输出。如果有人解释输出将非常有帮助。直到mid=0我才明白。
#include <iostream>
using namespace std;
void check(int c, int d) {
cout << "C=" << c << " D=" << d << endl;
if (c < d) {
int mid = (c + d) / 2;
cout << "mid=" << mid << endl;
check(c, mid);
check(mid + 1, d);
}
}
int main() {
// int a[12] = { 2, 3, 1, 6, 9, 112, 113, 224, 225, 226, 332, 2303 };
check(0, 5);
return 0;
}
输出:
C=0 D=5 中=2 C=0 D=2 中=1 C=0 D=1 中=0 C=0 D=0 C=1 D=1 C=2 D=2 C=3 D=5 中=4 C=3 D=4 中=3 C=3 D=3 C=4 D=4 C=5 D=5【问题讨论】:
-
能否解释一下输出