Home > Backend Development > PHP Tutorial > Examples of two quick sort algorithms in PHP_PHP tutorial

Examples of two quick sort algorithms in PHP_PHP tutorial

WBOY
Release: 2016-07-13 10:06:29
Original
899 people have browsed it

Examples of two quick sorting algorithms in PHP

This article mainly introduces examples of two quick sorting algorithms in PHP. This article directly gives the implementation code, using the recursive method and the iterative method respectively. Implementation, friends who need it can refer to it

Although in web application development like PHP, we don’t emphasize the importance of sorting too much, because PHP itself already comes with powerful sorting functions such as sort(), but in some important occasions, such as some high-level In the case of concurrency, I think the impact of the sorting algorithm cannot be ignored. So here we introduce recursive sorting and iterative sorting.

Recursive method:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

/**

* 递归法实现的快速排序

*/

function quicksort($seq)

{

$k = $seq[0];

$x = array();

$y = array();

for($i=1; $i< $_size; $i++) {

if($seq[$i] <= $k) {

$x[] = $seq[$i];

} else {

$y[] = $seq[$i];

}

}

$x = quicksort($x);

$y = quicksort($y);

return array_merge($x, array($k), $y);

} else {

return $seq;

}

}

1 2

3

4

5

6

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

/**

* 迭代法的快速排序

*/

function quicksortx(&$seq)

{

$stack = array($seq);

$sort = array();

while ($stack) {

$arr = array_pop($stack);

if(count($arr) <= 1) {

if(count($arr) == 1) {

$sort[] = &$arr[0];

}

continue;

}

$k = $arr[0];

$x = array();

$y = array();

$_size = count($arr);

for($i =1 ;$i < $_size; $i++) {

if($arr[$i] <= $k) {

$x[] = &$arr[$i];

} else {

$y[] = &$arr[$i];

}

}

!empty($y) && array_push($stack, $y);

array_push($stack, array($arr[0]));

!empty($x) && array_push($stack, $x);

}

return $sort;

}

7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
/** * Quick sort implemented by recursive method */ function quicksort($seq) { $k = $seq[0]; $x = array(); $y = array(); for($i=1; $i< $_size; $i++) { if($seq[$i] <= $k) { $x[] = $seq[$i]; } else { $y[] = $seq[$i]; } } $x = quicksort($x); $y = quicksort($y); return array_merge($x, array($k), $y); } else { return $seq; } }
Iterative method: ?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 /** * Quick sort using iterative method */ function quicksortx(&$seq) { $stack = array($seq); $sort = array(); while ($stack) { $arr = array_pop($stack); if(count($arr) <= 1) { if(count($arr) == 1) { $sort[] = &$arr[0]; } continue; } $k = $arr[0]; $x = array(); $y = array(); $_size = count($arr); for($i =1 ;$i < $_size; $i++) { if($arr[$i] <= $k) { $x[] = &$arr[$i]; } else { $y[] = &$arr[$i]; } } !empty($y) && array_push($stack, $y); array_push($stack, array($arr[0])); !empty($x) && array_push($stack, $x); } return $sort; }

使用:

?

1

2

3

4

5

6

7

8

9

10

/**

*产生一个随机数组

*/

for($i=0;$i<5;$i++){

$testArr[]=mt_rand(0,100);

}

var_dump($testArr);

var_dump(quicksort($testArr));

 

var_dump(quicksortx($testArr));

1 2 3 4

56 7 8 9 10
/** *Generate a random array
*/ for($i=0;$i<5;$i++){ $testArr[]=mt_rand(0,100); } var_dump($testArr); var_dump(quicksort($testArr));   var_dump(quicksortx($testArr));
http://www.bkjia.com/PHPjc/958570.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/958570.htmlTechArticlePHP两种快速排序算法实例 这篇文章主要介绍了PHP两种快速排序算法实例,本文直接给出实现代码,分别使用递归法、迭代法实现,需要的朋友可...
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template