<?php
////////////////////////////////////////////////////////////////////////////////
class SortTest {
public function __constructor($array) {
$this->a = $array;
}
public function start() {
for ($i=0; $i<1000; $i++) { // pętla for, w celu 'uwypuklenia' dziwnych czasów wykonywania sortowań
$tmp = $this->a;
$this->mySort($tmp);
}
return number_format($time, 1, '.', ''); // formatujemy ms z jednym przecinkiem (sprawdzenie, czy nie ma błędu przy zaokrąglaniu przy mniejszych liczbach) }
public function mySort($a) {
}
}
////////////////////////////////////////////////////////////////////////////////
function makeArray($type, $count) {
switch($type) { // tworzymy odpowiednią tabelę testową
case 'inc':
for ($i=0; $i<$count; $i++)
$arr[] = $i;
break;
case 'rnd':
for ($i=0; $i<$count; $i++)
break;
case 'dec':
for ($i=$count-1; $i>=0; $i--)
$arr[] = $i;
break;
}
return $arr;
}
////////////////////////////////////////////////////////////////////////////////
function testSort($type, $count) {
$count *= 1000;
$arr = makeArray($type,$count);
$sort = new SortTest($arr);
echo($sort->start().' ms, ');
}
////////////////////////////////////////////////////////////////////////////////
echo ' == INC: ';
testSort('inc',1);
testSort('inc',10);
testSort('inc',100);
echo ' == RND: ';
testSort('rnd',1);
testSort('rnd',10);
testSort('rnd',100);
echo ' == DEC: ';
testSort('dec',1);
testSort('dec',10);
testSort('dec',100);
PD9waHAKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KY2xhc3MgU29ydFRlc3QgewoJcHJpdmF0ZSAkYSA9IGFycmF5KCk7CgkKCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdG9yKCRhcnJheSkgewoJCSR0aGlzLT5hID0gJGFycmF5OwoJfQoJCglwdWJsaWMgZnVuY3Rpb24gc3RhcnQoKSB7CgkJJHRpbWUgPSAtbWljcm90aW1lKHRydWUpICoxMDAwICoxMDAwOwoJCQoJCWZvciAoJGk9MDsgJGk8MTAwMDsgJGkrKykgewkvLyBwxJl0bGEgZm9yLCB3IGNlbHUgJ3V3eXB1a2xlbmlhJyBkeml3bnljaCBjemFzw7N3IHd5a29ueXdhbmlhIHNvcnRvd2HFhAoJCQkkdG1wID0gJHRoaXMtPmE7CgkJCSR0aGlzLT5teVNvcnQoJHRtcCk7CgkJfQoJCQoJCSR0aW1lICs9IG1pY3JvdGltZSh0cnVlKSAqMTAwMCAqMTAwMDsKCQlyZXR1cm4gbnVtYmVyX2Zvcm1hdCgkdGltZSwgMSwgJy4nLCAnJyk7CS8vIGZvcm1hdHVqZW15IG1zIHogamVkbnltIHByemVjaW5raWVtIChzcHJhd2R6ZW5pZSwgY3p5IG5pZSBtYSBixYLEmWR1IHByenkgemFva3LEhWdsYW5pdSBwcnp5IG1uaWVqc3p5Y2ggbGljemJhY2gpCgl9CgkKCXB1YmxpYyBmdW5jdGlvbiBteVNvcnQoJGEpIHsKCQlzb3J0KCRhKTsKCX0KfQoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KZnVuY3Rpb24gbWFrZUFycmF5KCR0eXBlLCAkY291bnQpIHsKCSRhcnIgPSBhcnJheSgpOwoJc3dpdGNoKCR0eXBlKSB7CS8vIHR3b3J6eW15IG9kcG93aWVkbmnEhSB0YWJlbMSZIHRlc3Rvd8SFCgkJY2FzZSAnaW5jJzoKCQkJZm9yICgkaT0wOyAkaTwkY291bnQ7ICRpKyspCgkJCQkkYXJyW10gPSAkaTsKCQkJYnJlYWs7CgkJY2FzZSAncm5kJzoKCQkJZm9yICgkaT0wOyAkaTwkY291bnQ7ICRpKyspCgkJCQkkYXJyW10gPSBtdF9yYW5kKDAsICRjb3VudCk7CgkJCWJyZWFrOwoJCWNhc2UgJ2RlYyc6CgkJCWZvciAoJGk9JGNvdW50LTE7ICRpPj0wOyAkaS0tKQoJCQkJJGFycltdID0gJGk7CgkJCWJyZWFrOwoJfQoJcmV0dXJuICRhcnI7Cn0KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCmZ1bmN0aW9uIHRlc3RTb3J0KCR0eXBlLCAkY291bnQpIHsKCSRjb3VudCAqPSAxMDAwOwoJJGFyciA9IG1ha2VBcnJheSgkdHlwZSwkY291bnQpOwoJCgkkc29ydCA9IG5ldyBTb3J0VGVzdCgkYXJyKTsKCWVjaG8oJHNvcnQtPnN0YXJ0KCkuJyBtcywgJyk7Cn0KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCmVjaG8gJyA9PSBJTkM6ICc7CnRlc3RTb3J0KCdpbmMnLDEpOwp0ZXN0U29ydCgnaW5jJywxMCk7CnRlc3RTb3J0KCdpbmMnLDEwMCk7CmVjaG8gJyA9PSBSTkQ6ICc7CnRlc3RTb3J0KCdybmQnLDEpOwp0ZXN0U29ydCgncm5kJywxMCk7CnRlc3RTb3J0KCdybmQnLDEwMCk7CmVjaG8gJyA9PSBERUM6ICc7CnRlc3RTb3J0KCdkZWMnLDEpOwp0ZXN0U29ydCgnZGVjJywxMCk7CnRlc3RTb3J0KCdkZWMnLDEwMCk7
== INC: 821.3 ms, 830.8 ms, 811.0 ms, == RND: 773.0 ms, 811.0 ms, 805.0 ms, == DEC: 783.3 ms, 778.5 ms, 806.0 ms,