快速排序
文章平均质量分 54
重生之我是美国顺直白男
这个作者很懒,什么都没留下…
展开
-
关于算法题中排序的解决办法
在准备蓝桥杯的时候有的题里对排序有要求,可以采用两种办法:c语言中的qsort函数和c++中的sort函数。c语言中的qsort函数c++中的sort函数两者的使用场景的区别c语言中的qsort函数需要头文件#include<stdlib.h>对于int类型的数组:int num[n];int cmp(const void*a,const void*b){return *(int *)a-*(int *)b;//升序//降序:将cmp函数里交换参数相减即可}qsort(a原创 2021-03-24 20:33:58 · 161 阅读 · 0 评论 -
2020-12-20
关于传统快速排序的优化因为快排对于一些特殊的情况(例如序列原本就有序、有大量重复元素等等)会进行很多完全不必要的操作,耗费大量时间。为此,我们基于上述普通快速排序算法一步步进行优化。主要是改变了传统快排的取一组数中的第一个数为基准点的方法,而是取中间的数作为基准点。如果永远取第一个元素作为枢轴的话,在数组已经有序的情况下每次划分都将得到最坏的结果,时间复杂度退化为O(n^2)。因为其中一个子序列每次都只比原序列少一个元素,该侧的递归深度将达到最大。下面展示:#include <stdio.h&g原创 2020-12-20 21:38:32 · 112 阅读 · 0 评论