博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
快速排序
阅读量:5138 次
发布时间:2019-06-13

本文共 798 字,大约阅读时间需要 2 分钟。

快速排序

  • 快速排序算法是对冒泡算法的一个优化。他的思想是先对数组进行分割, 把大的元素数值放到一个临时数组里,把小的元素数值放到另一个临时数组里(这个分割的点可以是数组中的任意一个元素值,一般用第一个元素,即$array[0]),然后继续把这两个临时数组重复上面拆分,最后把小的数组元素和大的数组元素合并起来。这里用到了递归的思想。
    1522886-20190619140917730-1357341990.png
function quickSort($array){    if(!isset($array[1]))        return $array;    $mid = $array[0]; //获取一个用于分割的关键字,一般是首个元素    $leftArray = array();     $rightArray = array();    foreach($array as $v)    {        if($v > $mid)            $rightArray[] = $v;  //把比$mid大的数放到一个数组里        if($v < $mid)            $leftArray[] = $v;   //把比$mid小的数放到另一个数组里    }    $leftArray = quickSort($leftArray); //把比较小的数组再一次进行分割    $leftArray[] = $mid;        //把分割的元素加到小的数组后面,不能忘了它哦    $rightArray = quickSort($rightArray);  //把比较大的数组再一次进行分割    return array_merge($leftArray,$rightArray);  //组合两个结果}

转载于:https://www.cnblogs.com/mxyindex/p/11050950.html

你可能感兴趣的文章
linux下安装composer
查看>>
区块链,将如何重新定义世界
查看>>
Palindrome Partitioning II
查看>>
Xamarin.Android Binding-----百度地图SDK
查看>>
POJ 2391 Ombrophobic Bovines ★(Floyd+二分+拆点+最大流)
查看>>
LibreOJ β Round #2 E. 数论只会 GCD
查看>>
表格模型的监听 TableModelListener
查看>>
嵌入式 不同平台或者语言内存泄漏检测工具
查看>>
vertx的Actor模型实现
查看>>
freeMarker(十一)——模板语言之指令
查看>>
freeMarker(一)——freeMarker简介
查看>>
ChainMapper和ChainReducer
查看>>
MySQL--InnoDB 体系架构
查看>>
V8 JavaScript引擎研究(二)高性能探秘
查看>>
Oracle dump undo 说明
查看>>
Java程序练习-队列操作
查看>>
雪峰配置的nginx
查看>>
亚麻:2017-11 (not fresh grad ) find all substring with N size and only one duplicate character.
查看>>
对称加密算法
查看>>
windows搭建redis集群最佳实践
查看>>