C ++函数,用于比较不同排序算法的运行时间

时间:2014-02-08 14:50:33

标签: c++ function sorting vector time

您好我正在做的项目,我有不同的排序算法(QuickSort,BubbleSort等)。 我测量每一个的时间,最后我需要做一些比较哪个是最快的,依此类推。

bool testyBubblesort(){
   long int before = GetTickCount();
   a.BubbleSort_int();
   long int after = GetTickCount();
   double dif = double((after - before));
   result &= testEqual(zoradane.vypis_pola(), a.vypis_pola(),dif, "Test sort array-int");
   comparison(dif);
   vypisVysledkuTestu(result, "Testy triedenia BubbleSortom");   
   return result;
}

这是我的函数,它测试数组是否已排序并测量时间。重要的部分是比较(dif); 这应该是比较所有种类的函数。请注意,我也在其他种类中使用此功能。

void comparison(double time){
    vector<int> all_times;
    all_times.push_back(time);
}

所以我在想制作矢量数组然后排序它是个好主意但我不知道我总是会得到一些错误。 你能帮我吗 ? 感谢

1 个答案:

答案 0 :(得分:1)

你没有比较任何东西,因为你的矢量只有一个元素。

您应该将“比较”替换为仅插入到全局声明的向量中。然后,在顶层(无论何处调用testyBubblesort),并在那里进行比较。

更健壮的方法是创建一个向量,其中MyStruct被声明为double和一个字符串,因此您可以存储{time,“Bubble Sort”}(允许您将运行时与使用的排序算法相关联)。然后在顶层,只需使用内置的排序功能(你将不得不使用接受函数的版本来定义如何订购MyStruct)并从向量中获取第一个对象。然后打印出来字符串。