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";
?>