代码实验
来源:3-6 随机化快速排序法
CHlewN
2016-12-09
为什么我在电脑上代码试验时,使用testSort函数会什么也不显示
#include <iostream> #include "SortTestHelper.h" #include "MergeSort.h" #include "SelectionSort.h" using namespace std; int main() { int n = 600000; int *arr = SortTestHelper::generateRandomArray(n,10,20090); //mergeSort(arr, 10000); SortTestHelper::testSort("mergeSort", mergeSort, arr, n); //SortTestHelper::testSort("selectionSort", selectionSort, arr, n); //SortTestHelper::printArray(arr, 100); delete []arr; return 0; }
将n改小一点就会有显示mergesort使用的时间
void testSort(const string &sortName, void (*sort)(T[], int), T arr[], int n) { T *brr = copyArray(arr, n); clock_t startTime = clock(); sort(brr, n); clock_t endTime = clock(); //cout << sortName << " : " << << " s"<<endl; cout<<sortName<<": "; printf("%.10lf s\n",double(endTime - startTime) / CLOCKS_PER_SEC); assert(isSorted(brr, n)); delete []brr; return; }
写回答
2回答
-
liuyubobobo
2016-12-10
n很小的时候testSort可以显示时间;将n变大testSort什么都不显示。是不是将n变大,testSort一直在运行,没有运行完?如果是这样的话,会不会是自己实现的mergeSort有问题?其实实现的时间复杂度并非是O(nlogn)的?
你需要调试一下,看看到底问题的根源是什么。可以参考一下课程的官方代码实验一下哦:)
052016-12-10 -
CHlewN
提问者
2016-12-10
用老师你github上的源代码又试了一次,也是同样的问题,我用的是dev-c++
00
相似问题