码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 算法基础: 快速排序


    快速排序

    概念

    快速排序从算法的思维上来看,其实与归并排序一致,都是分治的思想,归并排序是先局部有序再整体有序,快速排序是先整体大致有序再局部有序。

    从实现的原理上来说,可以大概分为三步:1. 设置锚点分割区间,2.以锚点为中心左右整体有序,3.细分区间,直到只有一个值。

    思路

    大致步骤如下:

    首先设置一个分界值也就是基准值又是也称为监视哨,通过该分界值将数据分割成两部分。

    将大于或等于分界值的数据集中到右边,小于分界值的数据集中到左边。一趟排序过后,左边部分中各个数据元素都小于分界值,而右边部分中各数据元素都大于或等于分界值,且右边部分个数据元素皆大于左边所有数据元素。

    然后,左边和右边的数据可以看成两组不同的部分,重复上述1和2步骤

    当左右两部分都有序时,整个数据就完成了排序。

    代码实现

     int Paritition1(int A[], int low, int high) {
       int pivot = A[low];
       while (low < high) {
         while (low < high && A[high] >= pivot) {
           --high;
         }
         A[low] = A[high];
         while (low < high && A[low] <= pivot) {
           ++low;
         }
         A[high] = A[low];
       }
       A[low] = pivot;
       return low;
     }
    
     void QuickSort(int A[], int low, int high) //快排母函数
     {
       if (low < high) {
         int pivot = Paritition1(A, low, high);
         QuickSort(A, low, pivot - 1);
         QuickSort(A, pivot + 1, high);
       }
     }

     

  • 相关阅读:
    基于C#的自动校时器 - 开源研究系列文章 - 个人小作品
    CRC校验原理及步骤
    贪心算法之背包问题
    JavaScript入门到精通(五)连载
    设计模式- 代理模式(Proxy Pattern)结构|原理|优缺点|场景|示例
    气膜建筑的维护有哪些?
    php组装数据批量插入,比单条循环插入数据快很多
    HTTP服务器——tomcat的安装和使用
    使用rust学习基本算法(三)
    关于深度学习中概念【训练集】【验证集】【测试集】【参数】【超参数】的理解
  • 原文地址:https://blog.csdn.net/qq_32378713/article/details/126777560
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号