关闭

PHP 快速排序算法

74人阅读 评论(0) 收藏 举报
// 快速排序
$parameter = array(6,1,2,7,9,3,4,5,10,8);
$left = 0;
$right = (count($parameter)-1);


quick($left,$right);
var_dump($parameter);




function quick($left,$right){
global $parameter;// 获取全局变量


if($left > $right){// 超过中间线 返回
return ;
}


$base = $parameter[$left];// tmp 作为中间基准数
$i = $left;
$j = $right;


while($i != $j){
// 顺序很重要,要先从右侧往左侧找
while($parameter[$j] >= $base && $i < $j){
$j--;
}
// 再从左向右找
while($parameter[$i]<= $base && $i < $j){
$i++;
}


// 交换两个数在数组中的位置
if($i < $j){
$temp = $parameter[$i];
$parameter[$i] = $parameter[$j];
$parameter[$j] = $temp;
}
}


// 最终将基准数归位
$parameter[$left] = $parameter[$i];
$parameter[$i] = $base;


quick($left,$i-1);// 继续处理左边,这里是一个递归的过程
quick($i+1,$right);//继续处理右边,这里是一个递归的过程
}
1
0
查看评论

PHP实现排序算法----快速排序算法优化

本篇博客主要是谈谈对前面 《PHP实现排序算法—-快速排序(Quick Sort)、快排》的优化问题,如果大家之前没有看过该篇博客,那么必须回去看看,因为这篇博客就是以前一篇博客为基础的。优化一:优化选取枢轴:在前面的复杂度分析的过程中,我们看到最坏的情况无非就是当我们选中的枢轴是整个序列的边缘值。...
  • baidu_30000217
  • baidu_30000217
  • 2016-11-23 22:56
  • 1284

PHP快速排序算法

看了C语言版本的快速排序后,我用PHP实现了一遍。难度在于在一个数组上面进行位置的交换理解算法一列很长很长很长的队伍,我要排序,先抽一个队长,然后以队长为准,比队长高的排队长右边,比队长矮的排队长左边。 然后以队长为中界分成两个小分队。 各小分队又抽一个小队长 这个小队长又按照大队长的做法做了一遍…...
  • technofiend
  • technofiend
  • 2015-11-05 19:27
  • 464

用php实现快速排序算法

用php实现快速排序算法快速排序算法的原理主要是通过递归的思路来进行排序,我上网查过很多phper的程序发现都不是很清晰,现将代码贴出,供大家参考。<?php /** * Created by PhpStorm. * User: user * Date: 03/03/2017 * Ti...
  • martinhacker
  • martinhacker
  • 2017-03-12 12:32
  • 96

PHP实现排序算法----快速排序(Quick Sort)、快排

基本思想:快速排序(Quicksort)是对冒泡排序的一种改进。他的基本思想是:通过一趟排序将待排记录分割成独立的两部分,其中一部分的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行快速排序,整个排序过程可以递归进行,以达到整个序列有序的目的。基本算法步骤:举个栗子: 假如现在待排...
  • baidu_30000217
  • baidu_30000217
  • 2016-11-23 21:56
  • 3349

php快速排序算法

php快速排序 function quick_sort($arr){     $count = count($arr);     if($count   ...
  • autoload2014
  • autoload2014
  • 2014-05-07 22:56
  • 300

php 快速排序算法

function Quick_sort2($str,$s,$t){ $i = $s + 1; $j = $t; $x = $str[$s]; while ($i<=$j){ while ($str[$i]<=$x && $i...
  • aa705123123
  • aa705123123
  • 2010-12-21 13:20
  • 293

php 快速排序算法

/** * 快速排序算法 * * 通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小, * 然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 * * @param array $arr ...
  • a531265538
  • a531265538
  • 2016-08-22 10:29
  • 108

PHP 快速排序算法

概念 这里借用百度百科的一张图来,非常形象: 快速排序算法是对冒泡算法的一个优化。他的思想是先对数组进行分割, 把大的元素数值放到一个临时数组里,把小的元素数值放到另一个临时数组里(这个分割的点可以是数组中的任意一个元素值,一般用第一个元素,即$array[0]),然后继续把这两个临时数组重...
  • liuyingming910
  • liuyingming910
  • 2015-01-04 13:16
  • 151

php算法-php实现快速排序算法

<?php /* * 快速排序是编程中经常使用到的一种排序方法,作为必须掌握的一种算法,这里将进行php的快速排序实现 * 快速排序的核心思想就是将一个数组中第一项作为中界,所有比这个数大的放在它的右边,小的放在左边 *...
  • luanlihun
  • luanlihun
  • 2014-02-22 17:01
  • 591

【PHP-排序算法】快速排序、堆排序算法时间复杂度比较

介绍 在以往工作或者面试的时候常会碰到一个问题,如何实现海量TopN,就是在一个非常大的结果集里面快速找到最大的前10或前100个数,同时要保证内存和速度的效率,我们可能第一个想法就是利用排序,然后截取前10或前100,而排序对于量不是特别大的时候没有任何问题,但只要量特别大是根本不可能完成这...
  • qq_28194557
  • qq_28194557
  • 2017-05-05 15:38
  • 846
    个人资料
    • 访问:2036次
    • 积分:185
    • 等级:
    • 排名:千里之外
    • 原创:16篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类