#include <chrono>
#include <ctime>
#include <fstream>
#include <iostream>
#include <random>
#include <sstream>
#include <thread>
#include <unistd.h>
#include <uuid/uuid.h>

using namespace std;

char *dtValue=(char*)malloc(20);
char *uuidValue=(char*)malloc(40);

char* getTimeNow()
{
    time_t rawTime=time(nullptr);
    struct tm tmInfo=*localtime(&rawTime);
    strftime(dtValue,20,"%Y%m%d%H%M%S",&tmInfo);
    return dtValue;
}

char *getUuid()
{
    uuid_t newUUID;
    uuid_generate(newUUID);
    uuid_unparse(newUUID,uuidValue);
    return uuidValue;
}



random_device rd;
mt19937_64 mt(rd());

template<typename T>
T getRandom(T min,T max)
{
    uniform_int_distribution<T> uid(min,max);
    return uid(mt);
}



template<typename T>
void swap(T *left,T *right)
{
    T temp=*left;
    *left=*right;
    *right=temp;
}


template<typename T>
int partitionAsc(T *arr,int low,int high)
{
    T pivot=arr[high];
    int i=low-1;
    for(int j=low;j<high;j++)
    {
        if(arr[j]<pivot)
        { 
            swap<T>(&arr[i+1],&arr[j]);
        }
    } 
    swap<T>(&arr[i+1],&arr[high]);
    return i+1;
}
 
template<typename T>
void quickSortAsc(T* arr,int low,int high)
{
    if(low<high)
    {
        int pivot=partitionAsc(arr,low,high);
        quickSortAsc(arr,low,pivot-1);
        quickSortAsc(arr,pivot+1,high);
    }
} 

template<typename T>
void getTArray(T *arr,T min,T max,int len)
{
    for(int i=0;i<len;i++)
    {
        arr[i]=getRandom<T>(min,max);
    }
}

template<typename T>
void printTArray(T *arr,int len)
{
    for(int i=0;i<len;i++)
    {
        cout<<arr[i]<<"\t";
    }
    cout<<endl<<endl<<endl;
}

template<typename T>
void arrayTDemo(T min,T max,int len)
{
    T *arr=new T[len];
    getTArray(arr,min,max,len);
    cout<<"Before quick sort:"<<endl;
    printTArray(arr,len);
    quickSortAsc(arr,0,len-1);
    cout<<"After quick sort:"<<endl;
    printTArray(arr,len);
    delete []arr;
    cout<<getTimeNow()<<","<<__FUNCTION__<<","<<__LINE__<<endl;
}

int main(int args,char **argv)
{
    arrayTDemo<uint32_t>(0,UINT32_MAX,atoi(argv[1]));
}
g++ -g -std=c++2a -I. *.cpp -o h1 -luuid
./h1 100000

 

原文地址:http://www.cnblogs.com/Fred1987/p/16863349.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性