From 19edc5353d2468c307778610a8d922c2a52efcf6 Mon Sep 17 00:00:00 2001 From: Fernando Date: Sun, 20 Oct 2019 21:13:25 -0500 Subject: [PATCH 1/2] Added Heapsort for PHP language --- Sorting Algorithms/php/heapSort.php | 67 +++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 Sorting Algorithms/php/heapSort.php diff --git a/Sorting Algorithms/php/heapSort.php b/Sorting Algorithms/php/heapSort.php new file mode 100644 index 0000000..ab82c27 --- /dev/null +++ b/Sorting Algorithms/php/heapSort.php @@ -0,0 +1,67 @@ += 0; $i--) { + buildHeap($array, $sizeArray, $i); + } + + for ($i = $sizeArray - 1; $i >= 0; $i--) { + $swap = $array[0]; + $array[0] = $array[$i]; + $array[$i] = $swap; + + buildHeap($array, $i, 0); + } + + return $array; +} + +function buildHeap(&$array, $heapSize, $node) +{ + $left = 2 * $node + 1; + $right = 2 * $node + 2; + $max = $node; + + do { + if ($left < $heapSize && $array[$left] > $array[$max]) { + $max = $left; + } + + if ($right < $heapSize && $array[$right] > $array[$max]) { + $max = $right; + } + + if ($max != $node) { + $swap = $array[$node]; + $array[$node] = $array[$max]; + $array[$max] = $swap; + + $left = 2 * $max + 1; + $right = 2 * $max + 2; + $node = $max; + } else { + break; + } + + if ($left >= $heapSize || $right >= $heapSize) { + break; + } + } while ($array[$left] > $array[$max] || $array[$right] > $array[$max]); +} \ No newline at end of file From d5264de2ba3aaa467bcd4850cde9c374e8d3d736 Mon Sep 17 00:00:00 2001 From: Fernando Date: Sun, 20 Oct 2019 21:18:29 -0500 Subject: [PATCH 2/2] Added Heapsort for PHP language --- Sorting Algorithms/php/heapSort.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Sorting Algorithms/php/heapSort.php b/Sorting Algorithms/php/heapSort.php index ab82c27..4f9e603 100644 --- a/Sorting Algorithms/php/heapSort.php +++ b/Sorting Algorithms/php/heapSort.php @@ -64,4 +64,5 @@ function buildHeap(&$array, $heapSize, $node) break; } } while ($array[$left] > $array[$max] || $array[$right] > $array[$max]); -} \ No newline at end of file +} +?> \ No newline at end of file