コード例 #1
0
 *
 * @package bubble_sort
 * @author Andrey Babaev <*****@*****.**>
 */
require_once '../../common/functions.php';
// Prepare test array
$a = array(4, 10, 21, 5, 12, 43, 0, -4, 12, 5, 6, 1, 3, 27, 11, 15, 9);
// Print array before sorting
before_sort($a);
// Sort array
$a = merge_sort($a);
//Print array after sorting
after_sort($a);
measure_exec_time('merge_sort', 10000);
measure_exec_time('merge_sort', 20000);
measure_exec_time('merge_sort', 30000);
/**
 * Array sorting function
 * Use merge algorythm for sorting
 *
 * @param array $a Array for sorting
 * @return array $new_arr Sorting array
 */
function merge_sort(array $a)
{
    if (count($a) <= 1) {
        return $a;
    }
    $arr1 = array_slice($a, 0, count($a) / 2);
    $arr2 = array_slice($a, count($a) / 2);
    $arr1 = merge_sort($arr1);
コード例 #2
0
 * Sorting array by insertion algorithm
 *
 * @package bubble_sort
 * @author Andrey Babaev <*****@*****.**>
 */
require_once '../../common/functions.php';
// Prepare test array
$a = array(4, 10, 21, 5, 12, 43, 0, -4, 12, 5, 6, 1, 3, 27, 11, 15);
// Print array before sorting
before_sort($a);
// Sort array
$a = insertion_sort($a);
// Print array after sorting
after_sort($a);
measure_exec_time('insertion_sort', 10000);
measure_exec_time('insertion_sort', 20000);
//measure_exec_time('insertion_sort', 30000);  // too long for wait
/**
 * Array sorting function
 * Use insertion algorythm for sorting
 *
 * @param array $a Array for sorting
 * @return array $a Sorting array
 */
function insertion_sort(array $a)
{
    $arr_length = count($a);
    for ($j = 1; $j < $arr_length; $j++) {
        $key = $a[$j];
        $i = $j - 1;
        while ($i >= 0 && $a[$i] > $key) {
コード例 #3
0
 *
 * @package bubble_sort
 * @author Andrey Babaev <*****@*****.**>
 */
require_once '../../common/functions.php';
// Prepare test array
$a = array(4, 10, 21, 5, 12, 43, 0, -4, 12, 5, 6, 1, 3, 27, 11, 15);
// Print array before sorting
before_sort($a);
// Sort array
$a = bubble_sort($a);
// Print array after sorting
after_sort($a);
measure_exec_time('bubble_sort', 1000);
measure_exec_time('bubble_sort', 5000);
measure_exec_time('bubble_sort', 10000);
/**
 * Array sorting function
 * Use bubble algorythm for sorting
 *
 * @param array $a Array for sorting
 * @return array $a Sorting array
 */
function bubble_sort(array $a)
{
    for ($i = 0; $i < count($a); $i++) {
        for ($j = count($a) - 1; $j > $i; $j--) {
            if ($a[$j] < $a[$j - 1]) {
                $x = $a[$j];
                $a[$j] = $a[$j - 1];
                $a[$j - 1] = $x;