language: PHP (php 5.4.4)
date: 271 days 18 hours ago
link:
visibility: public
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
<?php
function quicksort( $array )
{
 $cur = 1;
 $stack[1]['l'] = 0;
 $stack[1]['r'] = count($array)-1;
 
 do 
 {
  $l = $stack[$cur]['l'];
  $r = $stack[$cur]['r'];
  $cur--;
 
  do
  {
   $i = $l;
   $j = $r;
   $tmp = $array[(int)( ($l+$r)/2 )][1];
 
   // partion the array in two parts.
   // left from $tmp are with smaller values,
   // right from $tmp are with bigger ones
   do
   {
    while( $array[$i][1] < $tmp )
     $i++;
 
    while( $tmp < $array[$j][1] ) 
     $j--;
 
    // swap elements from the two sides 
    if( $i <= $j )
    {
     $w = $array[$i];
     $array[$i] = $array[$j];
     $array[$j] = $w;
 
     $i++;
     $j--;
    }
 
   }while( $i <= $j );
 
 
   if( $i < $r )
   {
    $cur++;
    $stack[$cur]['l'] = $i;
    $stack[$cur]['r'] = $r;
   }
   $r = $j;
 
  }while( $l < $r );
 
 }while( $cur != 0 );
 
 return $array;
}
 
function microtime_float()
{
    list($usec, $sec) = explode(" ", microtime());
    return ((float)$usec + (float)$sec);
}
 
function set(&$uzytkownik)
{
    $uzytkownik[0][0] = "Jasiu";
        $uzytkownik[0][1] = 22;
        $uzytkownik[1][0] = "Wacek";
        $uzytkownik[1][1] = 21;
        $uzytkownik[2][0] = "Misiek";
        $uzytkownik[2][1] = 16;
        $uzytkownik[3][0] = "Kasia";
        $uzytkownik[3][1] = 11;
}
 
function cmpfunc($a, $b){return ($a[1] == $b[1]) ? 0 : ($a[1] < $b[1]) ? -1 : 1;}
 
$time = microtime_float();
for ($i = 0; $i<5000; $i++)
{
        set($uzytkownik);
        usort($uzytkownik, 'cmpfunc');
}
$time = microtime_float()-$time;
echo "usort: ".$time."<br>";
 
$time = microtime_float();
for ($i = 0; $i<5000; $i++)
{
        set($uzytkownik);
        $uzytkownik = quicksort($uzytkownik);
}
$time = microtime_float()-$time;
echo "quicksort: ".$time."<br>";
?>