C++STL排序算法验证

2018-07-20    来源:open-open

容器云强势上线!快速搭建集群,上万Linux镜像随意使用
/**********************************************************************
*这里是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;
}

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。

上一篇:C#调用SQLite演示代码

下一篇:简体转换成繁体