From d6ea21bbd5bc2fbd456803beac1471f245060b9e Mon Sep 17 00:00:00 2001 From: JasbirCodeSpace Date: Tue, 12 May 2020 17:23:23 +0530 Subject: [PATCH 1/3] Added Karatsuba_Algorithm.php --- Karatsuba_Algorithm/Karatsuba_Algorithm.php | 50 +++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 Karatsuba_Algorithm/Karatsuba_Algorithm.php diff --git a/Karatsuba_Algorithm/Karatsuba_Algorithm.php b/Karatsuba_Algorithm/Karatsuba_Algorithm.php new file mode 100644 index 0000000000..7934fb7417 --- /dev/null +++ b/Karatsuba_Algorithm/Karatsuba_Algorithm.php @@ -0,0 +1,50 @@ + \ No newline at end of file From 5e952a0714fdda0ca9cf8097171204fb650685f3 Mon Sep 17 00:00:00 2001 From: JasbirCodeSpace Date: Sun, 17 May 2020 19:08:38 +0530 Subject: [PATCH 2/3] Segment_Tree_RMQ in PHP --- Segment_Tree_RMQ/Segment_Tree_RMQ.php | 46 +++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 Segment_Tree_RMQ/Segment_Tree_RMQ.php diff --git a/Segment_Tree_RMQ/Segment_Tree_RMQ.php b/Segment_Tree_RMQ/Segment_Tree_RMQ.php new file mode 100644 index 0000000000..ea689ea303 --- /dev/null +++ b/Segment_Tree_RMQ/Segment_Tree_RMQ.php @@ -0,0 +1,46 @@ += $segEnd) return $segArr[$index]; + + if ($segEnd < $start || $segStart > $end) return PHP_INT_MAX; + + $mid = floor($segStart + ($segEnd - $segStart) / 2); + + $left = RMQ($segArr, $segStart, $mid, $start, $end, 2 * $index + 1); + $right = RMQ($segArr, $mid + 1, $segEnd, $start, $end, 2 * $index + 2); + return ($left <= $right ? $left : $right); +} + +function buildSegmentTree(&$arr, $start, $end, &$segArray, $index) +{ + if ($start == $end) + { + $segArray[$index] = $arr[$start]; + return $arr[$start]; + } + + $mid = floor($start + ($end - $start) / 2); + $left = buildSegmentTree($arr, $start, $mid, $segArray, $index * 2 + 1); + $right = buildSegmentTree($arr, $mid + 1, $end, $segArray, $index * 2 + 2); + + $segArray[$index] = ($left <= $right ? $left : $right); + + return $segArray[$index]; +} + +$arr = array(1,3,2,7,9,11,8,4,20,15); +$size = count($arr); + +$height = ceil(log($size, 2)); +$segtree_size = 2 * (pow(2, $height) - 1); +$segArray = new SplFixedArray($segtree_size); + +buildSegmentTree($arr, 0, $size - 1, $segArray, 0); + +$start = 1; +$end = 5; + +echo "Minimum value in index range $start to $end is " . RMQ($segArray, 0, $size - 1, $start, $end, 0); +?> From 01bd8e4652c2dfbfac7a1131b5d861bf0c2f4bdb Mon Sep 17 00:00:00 2001 From: Jasbir Date: Wed, 20 May 2020 11:20:14 +0530 Subject: [PATCH 3/3] Delete Karatsuba_Algorithm.php --- Karatsuba_Algorithm/Karatsuba_Algorithm.php | 50 --------------------- 1 file changed, 50 deletions(-) delete mode 100644 Karatsuba_Algorithm/Karatsuba_Algorithm.php diff --git a/Karatsuba_Algorithm/Karatsuba_Algorithm.php b/Karatsuba_Algorithm/Karatsuba_Algorithm.php deleted file mode 100644 index 7934fb7417..0000000000 --- a/Karatsuba_Algorithm/Karatsuba_Algorithm.php +++ /dev/null @@ -1,50 +0,0 @@ - \ No newline at end of file