VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > PHP >
  • php 快速排序

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
33
34
35
36
37
38
39
40
41
42
<?php
function quickSort(&$a)
{
    $n count($a);
    quickSortInternally($a, 0, $n-1);
}
function quickSortInternally(&$a,$l,$r)
{
    if ($l >= $rreturn;
    $q = partition($a$l$r);
    quickSortInternally($a$l$q-1);
    quickSortInternally($a$q+1, $r);
}
function partition(&$a,$l,$r)
{
    $pivot $a[$r];
    $i $l;
    for ($j $l$j $r; ++$j) {
        if ($a[$j] < $pivot) {
            $temp $a[$i];
            $a[$i] = $a[$j];
            $a[$j] = $temp;
            ++$i;
        }
    }
    $temp $a[$i];
    $a[$i] = $a[$r];
    $a[$r] = $temp;
    return $i;
}
$a1 = [1,4,6,2,3,5,4];
$a2 = [2, 2, 2, 2];
$a3 = [4, 3, 2, 1];
$a4 = [5, -1, 9, 3, 7, 8, 3, -2, 9];
quickSort($a1);
print_r($a1);
quickSort($a2);
print_r($a2);
quickSort($a3);
print_r($a3);
quickSort($a4);
print_r($a4);