版权声明:——转载请留言询问—— 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);
}