| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
b36g
10年前发布

C++STL排序算法验证

/**********************************************************************  *这里是vs2010工程中用来测试的程序,一并附上  *********************************************************************/  // mySort.cpp : 定义控制台应用程序的入口点。  // 关于一些排序的知识:  /*          对于一些语言(如java),一般的对象排序,通常比较元素最为费事,而移动元素时比较多。在排序算法中,归并排序比较次数最少,      所有在java标准库中排序大多数都是用归并排序。          对于C++而言,对于一般排序,当对象很大时,复制对象耗时比较多,而比较元素耗时较少。 在排序算法中,快速排序复制对象次数最少。      而C++的标准库中的排序算法也一般采用快速排序(变种快排或快排与其他排序结合,而不是简单的采用标准快排)。C++对象比较耗时少,      是因为编译器处理函数模板的扩展时具有强大的执行在线优化的能力。快速排序也是已知实践中最快的排序算法,时间复杂度为O(NlogN)。      虽然快排的最坏情况为二次函数,但稍加优化就能有效避免这种情况。  */  #include "stdafx.h"  #include <iostream>  #include "quickSort.h"  #include "heapSort.h"  #include "shellSort.h"  #include "mergeSort.h"  #include <time.h>  #include <algorithm>     #define random(x) (rand()%x)     int _tmain(int argc, _TCHAR* argv[])  {      long long start, end;      start = clock();      vector<int> vecInt;      int i= 0;      for (; i < 15; i++)      {          vecInt.push_back(random(67));          cout<<vecInt[i]<<" ";      }      cout << endl;         //sort(vecInt.begin(), vecInt.end());      //quickSort(vecInt);      //heapMaxSort(vecInt);      //heapMinSort(vecInt);      //shellSort(vecInt);      //mergeSort(vecInt);      i = 0;      for (;i < 15; i++)      {          cout<<vecInt[i]<<" ";      }      cout <<endl;      end = clock();      long long time = end -start;      cout<<time<<"@@@@@@@@@@@@"<<endl;      return 0;  }