PHP快速排序算法的详细解决方案

PHP快速排序算法的详细解决方案
概念

这是百度百科全书的图片,非常形象:

快速排序算法是冒泡算法的优化。他的想法是第一个数组分割,把数值元素到一个临时数组的元素,小到另一个临时数组的值(分割点可以是任意一个元素的数组中的值,一般用第一个元素,数组{ 0 }),然后继续21临时数组重复分裂,最后把小的和大的数组元素在数组中的元素。递归的想法是用在这里。

PHP实现

复制代码代码如下所示:

*

快速排序

* /

功能快速排序(数组)

{

如果(!isset($array { 1 }))

返回数组;

美元=数组{ 0 };获取一个用于关键字的分割,通常是第一个元素。

leftarray美元=阵();

rightarray美元=阵();

foreach(数组$ V)

{

如果($ $ $中)

rightarray美元{ } = $ V; / /在一个数组中的美元数量较大的

如果(五元)

leftarray美元{ } = $ V; / /美元小于另一个数组中的数

}

leftarray美元= quicksort($ leftarray); / /把小阵再次分割

leftarray美元{ } = $中; / /元素的分割到后面的小阵,不能忘记它。

rightarray美元= quicksort($ rightarray); / /比较大的数组再分割

返回array_merge(leftarray美元,美元rightarray); / /组合的两个结果

}
冒泡算法的比较

在这里,我做了一个比较,与以前的冒泡算法,我们可以看到,该算法是更有效的比冒泡算法。

复制代码代码如下所示:

美元= array_rand(范围(13000),1500); / /当1600个或更多的冒泡算法的元素将提示内存,但这里为了两个测量之间的差异的大小,设置为1500,这也冒泡算法可以执行。

洗牌($ A);打乱了数组的顺序。

$ T1 =瞬时(真);

快速排序(合一); / /快速排序

$ T2 =瞬时(真的);

回声((($ T2至T1)×1000)。'ms;

要求('。 /冒泡。'/library/loader.php'); / /这里指那种冒泡算法,我以前写的

$ T1 =瞬时(真);

冒泡(合一); / /泡沫

$ T2 =瞬时(真的);

回声((($ T2至T1)×1000)。'ms;
运行结果:

复制代码代码如下所示:

12.10880279541ms

772.64094352722ms

tag:解决方案快速排序算法详细电脑软件php

相关内容