`

PHP实现常见排序算法

 
阅读更多
<iframe align="center" marginwidth="0" marginheight="0" src="http://www.zealware.com/csdnblog336280.html" frameborder="0" width="336" scrolling="no" height="280"></iframe>

每年总是要隔三差五的看数据结构,每次总是觉得自己很多东西没有学好,唉。今天贴刚使用php实现4的排序算法,另外堆排序和归并排序没有写。

其他数据结构知识使用php的实现参考我以前写的文章:
http://blog.csdn.net/heiyeshuwu/archive/2006/06/10/787426.aspx

插入排序、选择排序、,冒泡排序,时间复杂度貌似都是 O(N2),所以实际意义不大,在实际测试中,我对3000个数组元素进行,这三种排序算法都需要花费80秒左右,而快速排序只需要8秒,差距确是比较大,有兴趣的可以自己测试一下。


//插入排序(一维数组)
functioninsert_sort($arr){
$count=count($arr);
for($i=1;$i$count;$i++){
$tmp=$arr[$i];
$j=$i-1;
while($arr[$j]>$tmp){
$arr[$j+1]=$arr[$j];
$arr[$j]=$tmp;
$j--;
}
}
return$arr;
}


//选择排序(一维数组)
functionselect_sort($arr){
$count=count($arr);
for($i=0;$i$count;$i++){
$k=$i;
for($j=$i+1;$j$count;$j++){
if($arr[$k]>$arr[$j])
$k=$j;
if($k!=$i){
$tmp=$arr[$i];
$arr[$i]=$arr[$k];
$arr[$k]=$tmp;
}
}
}
return$arr;
}

//冒泡排序(一维数组)
functionbubble_sort($array){
$count=count($array);
if($count0)returnfalse;

for($i=0;$i$count;$i++){
for($j=$count-1;$j>$i;$j--){
if($array[$j]$array[$j-1]){
$tmp=$array[$j];
$array[$j]=$array[$j-1];
$array[$j-1]=$tmp;
}
}
}
return$array;
}

//快速排序(一维数组)
functionquick_sort($array){
if(count($array)1)return$array;

$key=$array[0];
$left_arr=array();
$right_arr=array();
for($i=1;$icount($array);$i++){
if($array[$i]$key)
$left_arr[]=$array[$i];
else
$right_arr[]=$array[$i];
}
$left_arr=quick_sort($left_arr);
$right_arr=quick_sort($right_arr);

returnarray_merge($left_arr,array($key),$right_arr);
}

?>




分享到:
评论

相关推荐

    php实现的常见排序算法汇总

    主要介绍了php实现的常见排序算法汇总,包括插入排序、选择排序、冒泡排序、快速排序、归并排序与堆排序,并附有对排序算法的详细说明,需要的朋友可以参考下

    用php实现几种常见的排序算法共6页.pdf.zip

    用php实现几种常见的排序算法共6页.pdf.zip

    十大经典排序算法-多种编程语言

    十大经典排序算法 (1)多种编程语言,JavaScript,python,go,php等语言。 (2)排序算法可以分为内部排序...常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序

    PHP实现常用排序算法(含示意动图)

    本文将依次介绍一些常用的排序算法,以及PHP实现。 快速排序是由东尼·霍尔发展的一种排序算法。在平均状况下,排序n个项目要Ο(nlogn)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速...

    常见排序算法总结,基于 JavaScript 实现.zip

    对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同...

    PHP实现常用排序算法的方法

    本文主要介绍了一些常用的排序算法,以及PHP的代码实现等,希望对您能有所帮助。 本文来自于awaimai.com,由火龙果软件Luca编辑推荐。 作为phper,一般接触算法的编程不多。 但基本的排序算法还是应该掌握。 毕竟算法...

    PHP版本常用的排序算法汇总

    本文给大家汇总介绍了一些php中常见的排序算法的代码,非常实用,有需要的小伙伴可以参考下。

    php项目开发中用到的快速排序算法分析

    实际上在,做web开发,比较少遇到使用一些算法之类的,毕竟不是做搜索引擎,也不是写底层(比如写个类似于mysql这样的数据库,里面需要自己实现排序算法),另外,每种语言,比如java,php都或多或少已经封装好排序...

    PHP各种常见经典算法总结【排序、查找、翻转等】

    冒泡排序算法 public function test() { $arr = array(43, 54, 62, 21, 66, 32, 78, 36, 76, 39); var_dump($arr); echo ' '; $arr = $this-&gt;bubbleSort($arr); var_dump($arr); } public function ...

    PHP常用排序算法实例小结【基本排序,冒泡排序,快速排序,插入排序】

    主要介绍了PHP常用排序算法,结合实例形式总结分析了php常见的排序算法,包括基本排序、冒泡排序、快速排序、插入排序等,需要的朋友可以参考下

    排序算法之PHP版快速排序、冒泡排序

    简介快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,...

    PHP常用的排序和查找算法

    本文汇总了常见的php排序算法和查找,在进行算法设计的时候有不错的借鉴价值。现分享给大家供参考之用。具体如下: &lt;?php /** * PHP最常用的四个排序方法及二种查找方法 * 下面的排序方法全部都通过测试 * ...

    PHP经典算法集锦【经典收藏】

    主要介绍了PHP经典算法集锦,整理了各种常见的算法,包括排序、查找、遍历、运算等各种常见算法原理与实现技巧,需要的朋友可以参考下

    PHP常用算法和数据结构示例(必看篇)

    实例如下: &lt;/pre&gt;&lt;pre name=code class=php&gt;&lt;?php /** * Created by PhpStorm. * User: qishou * Date: 15-8-2 * Time: 上午9:12 */ header(content-type:text/html;...// 常用排序算法 /

    leetcode中国-algo:数据结构和算法

    使用php实现常见的算法与数据结构 【leetcode】 使用python实现leetcode middle级的题目 Array(数组) ID Difficulty Title Python 1 Easy Two Sum 11 Medium Container With Most Water 【offer】 使用php实现剑指...

Global site tag (gtag.js) - Google Analytics