算法基础:快排优化:为什么qsort会这么快

本文探讨了为何C语言标准库中的qsort函数在执行效率上优于自定义快速排序。通过对qsort源码的分析,揭示了其采用三数中值分割法选择基准值、避免递归改用栈、优先处理小分区以及结合插入排序等优化策略,这些措施显著提升了排序性能。
摘要由CSDN通过智能技术生成

这篇文章走马观花地学习一下qsort的源码,来看一下为何qsort比我们自己写的快排会快这么多。


快排与超时

我家ACM金奖大神说,从来没有见过快排还不能AC的,正在与基础努力奋斗的小朋友和中老年人同时心里一凉,于是立马调出qsort和sort进行作弊,忧郁的心情顿时得到了缓解。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
int compare(const void * a, const void * b) {
   
    return *((const int *)a) - *((const int *)b);
}
int main() {
   
    int n = 0;
    while (scanf("%d",&n) != EOF) {
   
        int* array = (int *)malloc(sizeof(int)*n);
        memset(array,0,sizeof(int)*n);
        for (int i=0; i<n; i++) array[i]=i+1;
        time_t start_time
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值