革命尚未成功

————同志仍需努力————

shinnyblue

导航

统计

【快速排序】

1.开门见山

 

 如上图,只要将所有元素都放到“正确的位置”,那么排序就算完成了。

 


 

 

 

2.介绍

核心思想是分治。分治分治,分而治之。

快速排序不稳定。但是它的另一个亲兄弟“归并排序”是稳定的

 

何谓稳定性?

下图是个”不稳定“的例子

 

 

相同的两个元素,在经过排序后,它俩的相对位置不变,那么就称此排序算法具有稳定性。

 


 

 

3.核心代码图解

 

 

 


 

 

4.完整模板

复制代码
void quick_sort(int a[],int l,int r){
    int x=a[l+r>>1];
    int i=l-1,j=r+1;
    if (l>=r)
    {
        return;
    }

    while(i<j)
    {
        do
        {
            i++;
        } while (a[i]<x);
        do
        {
            j--;
        } while (a[j]>x);
        if(i<j)swap(a[i],a[j]);
    }
    quick_sort(a,l,j);
    quick_sort(a,j+1,r);
}
复制代码

 

posted on   ShinnyBlue  阅读(42)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
Live2D
欢迎阅读『【快速排序】』
点击右上角即可分享
微信分享提示