C++快速排序效率测试 (附C++代码)

版权声明:——转载请留言询问—— https://blog.csdn.net/weixin_44344462/article/details/88312976

结论

经测试,随机数列长度为10的时候,自定义快速排序速度快于标准库sort函数,随机数列长度增加后,自定义快速排序函数效率则较差。

结果

随机数列长度 : 10
标准库sort排序时间 : 21
自定义快速排序时间 : 8

随机数列长度 : 100
标准库sort排序时间 : 20
自定义快速排序时间 : 30

随机数列长度 : 10000
标准库sort排序时间 : 965
自定义快速排序时间 : 3189

随机数列长度 : 100000000
标准库sort排序时间 : 1.05795e+07
自定义快速排序时间 : 2.93196e+07

快速排序代码

// 快速排序
template <class T>
void quickSort(T & v, long long low, long long high) {
    
    if (low >= high) {
        return;
    }
    
    long long left = low;
    long long right = high;
    auto base = v[left];
    
    while (left != right) {
        
        while (base <= v[right] && left != right) {
            --right;
        }
        
        v[left] = v[right];
        
        while (base >= v[left] && left != right) {
            ++left;
        }
        
        v[right] = v[left];
    }
    
    v[left] = base;
    quickSort(v, low, left - 1);
    quickSort(v, left + 1, high);
}

猜你喜欢

转载自blog.csdn.net/weixin_44344462/article/details/88312976