包含phparray_merge的词条

http://www.itjxue.com  2023-01-06 11:13  来源:未知  点击次数: 

PHP快速排序算法实现的原理及代码详解

算法原理

下列动图来自五分钟学算法,演示了快速排序算法的原理和步骤。

步骤:

从数组中选个基准值

将数组中大于基准值的放同一边、小于基准值的放另一边,基准值位于中间位置

递归的对分列两边的数组再排序

代码实现

function

quickSort($arr)

{

$len

=

count($arr);

if

($len

=

1)

{

return

$arr;

}

$v

=

$arr[0];

$low

=

$up

=

array();

for

($i

=

1;

$i

$len;

++$i)

{

if

($arr[$i]

$v)

{

$up[]

=

$arr[$i];

}

else

{

$low[]

=

$arr[$i];

}

}

$low

=

quickSort($low);

$up

=

quickSort($up);

return

array_merge($low,

array($v),

$up);

}

测试代码:

$startTime

=

microtime(1);

$arr

=

range(1,

10);

shuffle($arr);

echo

"before

sort:

",

implode(',

',

$arr),

"\n";

$sortArr

=

quickSort($arr);

echo

"after

sort:

",

implode(',

',

$sortArr),

"\n";

echo

"use

time:

",

microtime(1)

-

$startTime,

"s\n";

测试结果:

before

sort:

1,

7,

10,

9,

6,

3,

2,

5,

4,

8

after

sort:

1,

2,

3,

4,

5,

6,

7,

8,

9,

10

use

time:

0.0009009838104248s

时间复杂度

快速排序的时间复杂度在最坏情况下是O(N2),平均的时间复杂度是O(N*lgN)。

这句话很好理解:假设被排序的数列中有N个数。遍历一次的时间复杂度是O(N),需要遍历多少次呢?至少lg(N+1)次,最多N次。

1)

为什么最少是lg(N+1)次?快速排序是采用的分治法进行遍历的,我们将它看作一棵二叉树,它需要遍历的次数就是二叉树的深度,而根据完全二叉树的定义,它的深度至少是lg(N+1)。因此,快速排序的遍历次数最少是lg(N+1)次。

2)

为什么最多是N次?这个应该非常简单,还是将快速排序看作一棵二叉树,它的深度最大是N。因此,快读排序的遍历次数最多是N次。

您可能感兴趣的文章:PHP快速排序算法实例分析PHP四种排序算法实现及效率分析【冒泡排序,插入排序,选择排序和快速排序】PHP排序算法之快速排序(Quick

Sort)及其优化算法详解PHP递归实现快速排序的方法示例php

二维数组快速排序算法的实现代码PHP常用排序算法实例小结【基本排序,冒泡排序,快速排序,插入排序】PHP快速排序quicksort实例详解

PHP删除数组中某个元素后,键标如何重新排序?

$arr=array_merge($arr);

这个函数可以给数组重新进行排序

再看看别人怎么说的。

php 遍历字符串字符

?php

$temp='abcdefg'; //要遍历的字符串

$re=array(); //定义接受字符串的数组

for($i=0;$istrlen($temp);$i++)

{

$re[]=substr($temp,$i,1); //将单个字符存到数组当中

echo $re[$i],',';

}

?

一. 基本概念

1.PHP,一个嵌套的缩写名称,是英文超级文本预处理语言(PHP:Hypertext?Preprocessor)的缩写。PHP?是一种?HTML?内嵌式的语言,PHP与微软的ASP颇有几分相似,都是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,现在被很多的网站编程人员广泛的运用。

2.PHP?独特的语法混合了C、Java、Perl?以及?PHP?自创新的语法。它可以比?CGI?或者?Perl?更快速的执行动态网页

3.PHP最初是由勒多夫在1995年开始开发的;现在PHP的标准由the PHP Group维护。PHP以PHP License作为许可协议,不过因为这个协议限制了PHP名称的使用,所以和开放源代码许可协议GPL不兼容。

二. 语言解析

1.PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创的语法。

2.它可以比 CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。

php 二维数组追加二维数组

array_merge_recursive ? 和?array_merge 只是针对一维数组而言的!

试试下面的:

$arr1?=?array(array('gc_id_1'?=?1),?array('gc_id_1'?=?1));

$arr2?=?array(array('gc_id_1'?=?593));

$arr1[]?=?current($arr2);

var_dump($arr1);

(责任编辑:IT教学网)

更多

推荐程序员考试文章