Sourcecode

Sort/run.php


run.php

<?php

include('de/themarcraft/sort/ArrayUtils.php');
include('de/themarcraft/sort/RadixSort.php');
include('de/themarcraft/sort/QuickSort.php');
include('de/themarcraft/sort/InsertionSort.php');
include('de/themarcraft/sort/BucketSort.php');

use de\themarcraft\sort\ArrayUtils;
use de\themarcraft\sort\BucketSort;
use de\themarcraft\sort\InsertionSort;
use de\themarcraft\sort\QuickSort;
use de\themarcraft\sort\RadixSort;

function run($arrayLength)
{
    ArrayUtils::fillArray($arrayLength);

    $radixSort = new RadixSort();
    $quickSort = new QuickSort();
    $insertionSort = new InsertionSort();
    $bucketSort = new BucketSort();
    $array = ArrayUtils::getArray();

    /**
     * Radix Sort
     */

    $beginn = microtime(true);

    $radixSort->sort($array);

    $dauer = microtime(true) - $beginn;
    $data = "Radixsort;$dauer;".$radixSort->getRuns().";$arrayLength \n";
    echo $data;
    file_put_contents("log.csv", $data, FILE_APPEND);

    $data = json_decode(file_get_contents("/home/marvi/sort/" . "radixsort.json"));
    $data[] = [$arrayLength, $radixSort->getRuns()];
    file_put_contents("/home/marvi/sort/" . "radixsort.json", json_encode($data));

    /**
     * Bucket Sort
     */

    $beginn = microtime(true);

    $bucketSort->sort($array);

    $dauer = microtime(true) - $beginn;
    $data = "Bucketsort;$dauer;".$bucketSort->getRuns().";$arrayLength \n";
    echo $data;
    file_put_contents("log.csv", $data, FILE_APPEND);

    $data = json_decode(file_get_contents("/home/marvi/sort/" . "bucketsort.json"));
    $data[] = [$arrayLength, $bucketSort->getRuns()];
    file_put_contents("/home/marvi/sort/" . "bucketsort.json", json_encode($data));

    /**
     * Quick Sort
     */

    $beginn = microtime(true);

    $quickSort->sort($array);

    $dauer = microtime(true) - $beginn;
    $data = "Quicksort;$dauer;".$quickSort->getRuns().";$arrayLength \n";
    echo $data;
    file_put_contents("log.csv", $data, FILE_APPEND);

    $data = json_decode(file_get_contents("/home/marvi/sort/" . "quicksort.json"));
    $data[] = [$arrayLength, $quickSort->getRuns()];
    file_put_contents("/home/marvi/sort/" . "quicksort.json", json_encode($data));

    if ($arrayLength <= 100000){


        /**
         * Insertion Sort
         */

        $beginn = microtime(true);

        $insertionSort->sort($array);

        $dauer = microtime(true) - $beginn;
        $data = "Insertionsort;$dauer;".$insertionSort->getRuns().";$arrayLength \n";
        echo $data;
        file_put_contents("log.csv", $data, FILE_APPEND);

        $data = json_decode(file_get_contents("/home/marvi/sort/" . "insertionsort.json"));
        $data[] = [$arrayLength, $insertionSort->getRuns()];
        file_put_contents("/home/marvi/sort/" . "insertionsort.json", json_encode($data));
    }
}

$beginn = microtime(true);
echo "Skript wird gestartet bei $beginn";

for ($i = 0; $i < 10000000; $i += 1000) {
    if ($i == 0) {
        $data = [[0, 0]];
        file_put_contents("/home/marvi/sort/" . "radixsort.json", json_encode($data));
        file_put_contents("/home/marvi/sort/" . "quicksort.json", json_encode($data));
        file_put_contents("/home/marvi/sort/" . "insertionsort.json", json_encode($data));
        file_put_contents("/home/marvi/sort/" . "bucketsort.json", json_encode($data));
    }else{
        run($i);
    }
}

$dauer = microtime(true) - $beginn;

echo "Gesamtdauer des Skripts ist $dauer";


?>