对拍程序是什么?
当你的一个程序提交后发现答案错误了,但又不知道错哪,那么你可以找一个能够AC的程序,与你的程序输入相同的数据,并对答案进行比较。
然而,编一个测试数据通常是非常麻烦的事。我们可以编写一个对拍程序,来让计算机来做这种麻烦的事。
准备工作
- 你自己的源程序。在这里,我是用自己编写的归并排序程序作为演示。
// TestSort.cpp #include <iostream> using namespace std; void TestSort(int * arr, int iStart, int iEnd, int iSize) { if (iStart + 1 >= iEnd) return; int iLeft = iStart, iMid = iStart + (iEnd - iStart) / 2, iRight = iMid; TestSort(arr, iLeft, iMid, iSize); TestSort(arr, iMid, iEnd, iSize); int arrTmp[iSize + 1]; for (int i = iStart; iLeft < iMid || iRight < iEnd; i++) { if (iRight >= iEnd || (iLeft < iMid && arr[iLeft] <= arr[iRight])) arrTmp[i] = arr[iLeft++]; else arrTmp[i] = arr[iRight++]; } for (int i = iStart; i < iEnd; i++) a