php简单实现快速排序的方法
本文实例讲述了php简单实现快速排序的方法。分享给大家供大家参考。具体实现方法如下:
function quicksort($seq) { if(!count($seq)) return $seq; $k = $seq[0]; $x = $y = array(); for($i=count($seq); --$i;) { if($seq[$i] <= $k) { $x[] = $seq[$i]; } else { $y[] = $seq[$i]; } } return array_merge(quicksort($x),array($k),quicksort($y)); }
希望本文所述对大家的php程序设计有所帮助。
相关推荐
-
php冒泡排序与快速排序实例详解
本文实例分析了php冒泡排序与快速排序算法.分享给大家供大家参考,具体如下: $a=array('3','8','1','4','11','7'); print_r($a); $len = count($a); //从小到大 for($i=1;$i<$len;$i++) { for($j=$len-1;$j>=$i;$j--) if($a[$j]<$a[$j-1]) {//如果是从大到小的话,只要在这里的判断改成if($b[$j]>$b[$j-1])就可以了 $x=$a[$j];
-
php数据结构与算法(PHP描述) 快速排序 quick sort
复制代码 代码如下: <?php /** * 快速排序 quick sort * **/ function sort_quick($arrData) { if(empty($arrData) || !is_array($arrData)) return false; $flag = $arrData[0]; $len = count($arrData) - 1; if($len == 0) return $arrData; // 如果只有一个数据的数组直接返回 $arrLeft = array(
-
php实现快速排序法函数代码
代码1: 复制代码 代码如下: <?php function quicksort($str){ if(count($str)<=1) return $str;//如果个数不大于一,直接返回 $key=$str[0];//取一个值,稍后用来比较: $left_arr=array(); $right_arr=array(); for($i=1;$i<count($str);$i++){//比$key大的放在右边,小的放在左边: if($str[$i]<=$key) $left_arr[
-
PHP两种快速排序算法实例
虽然在PHP这样的web应用开发中,我们不是太强调排序的重要性,因为PHP自身已经带了例如sort()等这样强大的排序函数,但是在一些重要的场合,例如某些高并发的场合,我想排序算法的影响已经不能忽略.所以在此介绍递归排序和迭代排序. 递归法: /** * 递归法实现的快速排序 */ function quicksort($seq) { $k = $seq[0]; $x = array(); $y = array(); for($i=1; $i< $_size; $i++) { if($seq[$
-
php关联数组快速排序的方法
本文实例讲述了php关联数组快速排序的方法.分享给大家供大家参考.具体如下: <?php function qsort($a,$f) { qsort_do(&$a,0,Count($a)-1,$f); } function qsort_do($a,$l,$r,$f) { if ($l < $r) { qsort_partition(&$a,$l,$r,&$lp,&$rp,$f); qsort_do(&$a,$l,$lp,$f); qsort_do(&am
-
PHP 快速排序算法详解
概念 这里借用百度百科的一张图来,非常形象: 快速排序算法是对冒泡算法的一个优化.他的思想是先对数组进行分割, 把大的元素数值放到一个临时数组里,把小的元素数值放到另一个临时数组里(这个分割的点可以是数组中的任意一个元素值,一般用第一个元素,即$array[0]),然后继续把这两个临时数组重复上面拆分,最后把小的数组元素和大的数组元素合并起来.这里用到了递归的思想. PHP实现 复制代码 代码如下: /* 快速排序 */ function quickSort($array) {
-
php快速排序原理与实现方法分析
本文实例讲述了php快速排序方法.分享给大家供大家参考,具体如下: <?php $n = array('13','14','55','10','54','2','79','106','89','90','22','60','111','77777','-110','-10','123'); function partition($n,$left,$right) { global $n; $pivot = $n[$left]; $lo=$left; $hi=$right+1; while($lo+
-
php实现快速排序的三种方法分享
写了三种php快速排示例,第一种效率低但最简单最容易理解,第二个是算法导论上提供的单向一次遍历找中值方法,第三种是双向遍历找中值经典快排算法.三组算法实现和比较如下: 方法一:该方法比较直观,但损失了大量的空间为代价,使用了效率较低的merge函数.在三种方法中效率最低.最坏情况下算法退化为(O(n*n)) 复制代码 代码如下: function quick_sort($array) { if(count($array) <= 1) return $array; $key = $array[0]
-
php冒泡排序、快速排序、快速查找、二维数组去重实例分享
一.冒泡排序 复制代码 代码如下: //冒泡排序function bubble_sort($array){ $count=count($array); if($count <= 0){ return false; } for($i=0;$i<$count;$i++){ for($j=0;$j<$count-$i-1;$j++){ if( $array[$j] > $array[$j+1] ){
-
PHP快速排序quicksort实例详解
本文实例讲述了PHP快速排序quicksort.分享给大家供大家参考,具体如下: quicksort 在快速排序算法中,使用了分治策略.首先把序列分成两个子序列,递归地对子序列进行排序,直到整个序列排序结束.(即一分为二的思想) 步骤如下: 在序列中选择一个关键元素做为轴: 对序列进行重新排序,将比轴小的元素移到轴的前边,比轴大的元素移动到轴的后面.在进行划分之后,轴便在它最终的位置上: 递归地对两个子序列进行重新排序:含有较小元素的子序列和含有较大元素的子序列. 比如序列$arr: 5 3 0
-
php排序算法(冒泡排序,快速排序)
冒泡排序实现原理 ① 首先将所有待排序的数字放入工作列表中.② 从列表的第一个数字到倒数第二个数字,逐个检查:若某一位上的数字大于他的下一位,则将它与它的下一位交换. ③ 重复步骤②,直至再也不能交换. 代码实现 复制代码 代码如下: <?php function bubbingSort(array $array) { for($i=0, $len=count($array)-1; $i<$len; ++$i) { for($j=$len; $j>$i;
-
php项目开发中用到的快速排序算法分析
本文实例讲述了php项目开发中用到的快速排序算法.分享给大家供大家参考,具体如下: 实际上在,做web开发,比较少遇到使用一些算法之类的,毕竟不是做搜索引擎,也不是写底层(比如写个类似于mysql这样的数据库,里面需要自己实现排序算法),另外,每种语言,比如java,php都或多或少已经封装好排序函数给程序员使用.比如有个共识,大家做web开发的基本都明白,业务逻辑多比较简单,不是很复杂的业务逻辑.我们作为web开发的程序员,基本是是web架构,对数据库增删查改数据,然后把数据展示在页面中,大多
随机推荐
- Jquery遍历select option和添加移除option的实现方法
- 详解spring开发_JDBC操作MySQL数据库
- Java线程池的几种实现方法及常见问题解答
- MyBatis入门之增删改查+数据库字段和实体字段不一致问题处理方法
- php站内搜索关键词变亮的实现方法
- js实现鼠标拖动功能
- javascript中判断json的方法总结
- javascript中的事件代理初探
- jquery 日期控件datepicker属性详细解析
- 批处理实现的五子棋人机对战游戏
- DOS下联网的方法
- Linux中logrotate日志轮询操作总结
- Shell脚本中实现把输入的密码转换为*(星号)的方法
- ES6字符串模板,剩余参数,默认参数功能与用法示例
- C++ 中"priority_queue" 优先级队列实例详解
- Android编程中常用适配器及自定义适配器用法实例分析
- Python语言实现百度语音识别API的使用实例
- Java二叉树的遍历思想及核心代码实现
- 小程序:授权、登录、session_key、unionId的详解
- python 的 scapy库,实现网卡收发包的例子