修炼内功---数据结构与算法12---快速排序
https://blog.csdn.net/adusts/article/details/80882649
这个博客写的很好
<?phpfunction quick_sort($nums)
{if (count($nums) <= 1) {return $nums;}quick_sort_c($nums, 0, count($nums) - 1);return $nums;
}function quick_sort_c(&$nums, $p, $r)
{if ($p >= $r) {return;}$q = partition($nums, $p, $r);quick_sort_c($nums, $p, $q - 1);quick_sort_c($nums, $q + 1, $r);
}// 寻找pivot
function partition(&$nums, $p, $r)
{$pivot = $nums[$r];$i = $p;for ($j = $p + 1; $j < $r; $j++) {// 原理:将比$pivot小的数丢到[$p...$i-1]中,剩下的[$i..$j]区间都是比$pivot大的if ($nums[$j] < $pivot) {$temp = $nums[$i];$nums[$i] = $nums[$j];$nums[$j] = $temp;$i++;}}// 最后将 $pivot 放到中间,并返回 $i$temp = $nums[$i];$nums[$i] = $pivot;$nums[$r] = $temp;return $i;
}$nums = [4, 5, 6, 3, 2, 1];
$nums = quick_sort($nums);
print_r($nums);
修炼内功---数据结构与算法12---快速排序相关推荐
- 修炼内功---数据结构与算法6---队列
<?php/*** 通过 PHP 数组实现的队列*/ class SimpleQueue {private $_queue = [];private $_size = 0;public func ...
- 视频教程-内功修炼之数据结构与算法-Java
内功修炼之数据结构与算法 2018年以超过十倍的年业绩增长速度,从中高端IT技术在线教育行业中脱颖而出,成为在线教育领域一匹令人瞩目的黑马.咕泡学院以教学培养.职业规划为核心,旨在帮助学员提升技术技能 ...
- 数据结构与算法之快速排序
数据结构与算法之快速排序 目录 快速排序介绍 代码实现 1. 快速排序介绍 快速排序(Quicksort)是对冒泡排序的一种改进.基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的 ...
- 【数据结构与算法】快速排序
目录 一.快速排序定义 二.排序思想 1.Hoare法 2.挖坑法 3.前后指针法 三.不足及改进 1.不足 2.改进 四.由递归改为非递归 一.快速排序定义 快速排序是由东尼·霍尔所发展的一种排序算 ...
- 【python】数据结构与算法之快速排序(重要)
一.快速排序 设定一个基准值pivot 将数组重新排列,所有比pivot小的放在其前面,比pivot大的放后面,这操作称为分区操作 对两边的数组重复前面两个步骤 二.画图演示 三.代码块 采用递归思想 ...
- 快速排序伪代码_数据结构和算法之快速排序
快速排序是一种有意思的排序算法.下面我们从核心思想,图解,递推公式,优化和性能度量五个方面讲讲快速排序. 快排的核心思想是这样的 -对于排序数组中下标为p......r之间的一组数据,我们选择p到r的 ...
- 数据结构及算法之快速排序-python实现
1. 快速排序介绍 快速排序(Quick Sort)使用分治法策略. 它的基本思想是:选择一个基准数,通过一趟排序将要排序的数据分割成独立的两部分:其中一部分的所有数据都比另外一部分的所有数据都要小. ...
- 数据结构与算法之一快速排序
快速排序采用的是分治法,何为分治?意思是将原问题分解为若干个规模更小但结构与原问题相似的子问题,递归地解这些子问题(在程序中就是递归调用),然后将这些子问题的解组合为原问题的解. 快速排序的基 ...
- 在路上---学习篇(一)Python 数据结构和算法 (3) --快速排序
独白: 前几天学的基本简单排序算法,相对来说接受起来还是可以的,今天学的快速排序,视频看了2遍加上自己的思考,才真正的研究明白.自己的编程思维在逐渐的形成,日后还需勤加练习.心得:越高级的算法,越是让 ...
最新文章
- 二叉树相关性质以及数学证明
- 编译器对私有字段初始化的优化
- python判断能否组成三角形_牛鹭学院:学员笔记|Python: 输入三条边,判断是否可以成为三角形...
- ASP.NET Core分布式项目实战(运行Consent Page)--学习笔记
- 【HNOI2016】序列【莫队】【单调栈】【ST表】
- c++远征之模板篇——静态数据成员,静态成员函数
- ap接口 php_小白php API初体验 php api文档 php api接口开发 php web ap
- win7系统电脑d盘不见了的解决方法
- 物联网卡不实名认证有什么风险
- android 中 ViewPager 的平常用法 ViewPager+ Views
- 【读书笔记《Android游戏编程之从零开始》】4.Android 游戏开发常用的系统控件(EditText、CheckBox、Radiobutton)
- python2.7+pyqt4安装
- 无线网卡dhcp服务器,ubuntu11.10配置无线网卡dhcp服务器记录(not authoritative for subnet 192.168.1.0问题解决)...
- POE指针式时钟系统自动追时精准校时
- 设置快捷键使页面全屏
- [不变初心数(15分] 用数组存储不变的数最后对照即可
- 2.6 springBoot学习笔记(2.6)——- 整合mybatisPlus
- 机器指令程序编写方法
- “穿的越少越好”在夏天说和在冬天说是不一样的
- 【CVE-2021-4043】Linux本地提权漏洞复现
热门文章
- Towhee 每日模型周报
- 【c/c++编程】查找类问题
- second life 新手必读 原文http://www.chezhe.com/game/ol/paopao/zhin
- 微型计算机原理和接口技术试卷,2017-1微机原理和接口技术试卷A(答案)-.doc
- 计算机主机突然断电有什么影响,电脑突然断电对硬件有影响吗?电脑突然断电的危害...
- 用注册表管理IE代理设置
- 《一文搞懂NMS发展历程》Soft-NMS、Weighted NMS、IoU-Net、Softer-NMS、Adaptive NMS、DIoU-NMS
- 2020暑期实习 总结
- idea修改代码提示时间
- Linux内存申请失败失败会怎样,linux - 转储失败,因为无法加载资产 - 堆栈内存溢出...