From 7f5ad397194f5eb77d9ac1284b6fe1fd199a09b5 Mon Sep 17 00:00:00 2001 From: Moaz El-sawaf Date: Thu, 29 Jun 2023 02:55:06 +0200 Subject: [PATCH] chore: :fire: remove the bonus code files because they have almost no benefits --- .../bonus_dart_specific_merge_sort.dart | 46 -------------- .../bonus_binary_search_recursive.dart | 13 ---- ...bonus_dart_specific_segregate_numbers.dart | 44 -------------- .../bonus_dart_specific_merge_sort_test.dart | 33 ---------- .../bonus_binary_search_recursive_test.dart | 60 ------------------- ..._dart_specific_segregate_numbers_test.dart | 40 ------------- 6 files changed, 236 deletions(-) delete mode 100644 lib/11_divide_and_conquer_merge_sort_code/bonus_dart_specific_merge_sort.dart delete mode 100644 lib/13_binary_search_algorithm_code/bonus_binary_search_recursive.dart delete mode 100644 lib/15_segregate_positive_and_negative_numbers_code/bonus_dart_specific_segregate_numbers.dart delete mode 100644 test/11_divide_and_conquer_merge_sort_code/bonus_dart_specific_merge_sort_test.dart delete mode 100644 test/13_binary_search_algorithm_code/bonus_binary_search_recursive_test.dart delete mode 100644 test/15_segregate_positive_and_negative_numbers_code/bonus_dart_specific_segregate_numbers_test.dart diff --git a/lib/11_divide_and_conquer_merge_sort_code/bonus_dart_specific_merge_sort.dart b/lib/11_divide_and_conquer_merge_sort_code/bonus_dart_specific_merge_sort.dart deleted file mode 100644 index 3e0450a..0000000 --- a/lib/11_divide_and_conquer_merge_sort_code/bonus_dart_specific_merge_sort.dart +++ /dev/null @@ -1,46 +0,0 @@ -void mergeSort(List array, int start, int end) { - if (end <= start) return; - - final midpoint = (start + end) ~/ 2; - - mergeSort(array, start, midpoint); - mergeSort(array, midpoint + 1, end); - _merge(array, start, midpoint, end); -} - -// Note: I decided to make this method private because it is not used from -// outside the [mergeSort] method -void _merge(List array, int start, int midpoint, int end) { - final leftArray = array.getRange(start, midpoint + 1).toList(); - final rightArray = array.getRange(midpoint + 1, end + 1).toList(); - - int i = 0; - int j = 0; - int k = start; - - while (i < leftArray.length && j < rightArray.length) { - if (leftArray[i] < rightArray[j]) { - array[k] = leftArray[i]; - i++; - } else { - array[k] = rightArray[j]; - j++; - } - - k++; - } - - if (i >= leftArray.length) { - array.replaceRange( - k, - end + 1, - rightArray.getRange(j, rightArray.length), - ); - } else { - array.replaceRange( - k, - end + 1, - leftArray.getRange(i, leftArray.length), - ); - } -} diff --git a/lib/13_binary_search_algorithm_code/bonus_binary_search_recursive.dart b/lib/13_binary_search_algorithm_code/bonus_binary_search_recursive.dart deleted file mode 100644 index 7b9d07f..0000000 --- a/lib/13_binary_search_algorithm_code/bonus_binary_search_recursive.dart +++ /dev/null @@ -1,13 +0,0 @@ -int binarySearchRecursive(List x, double key, int start, int end) { - if (start > end) return -1; - - final midpoint = (start + end) ~/ 2; - - if (x[midpoint] == key) { - return midpoint; - } else if (key > x[midpoint]) { - return binarySearchRecursive(x, key, midpoint + 1, end); - } else { - return binarySearchRecursive(x, key, start, midpoint - 1); - } -} diff --git a/lib/15_segregate_positive_and_negative_numbers_code/bonus_dart_specific_segregate_numbers.dart b/lib/15_segregate_positive_and_negative_numbers_code/bonus_dart_specific_segregate_numbers.dart deleted file mode 100644 index 59e6ceb..0000000 --- a/lib/15_segregate_positive_and_negative_numbers_code/bonus_dart_specific_segregate_numbers.dart +++ /dev/null @@ -1,44 +0,0 @@ -void segregateNumbers(List array, int start, int end) { - if (end <= start) return; - - final mid = (end + start) ~/ 2; - - segregateNumbers(array, start, mid); - segregateNumbers(array, mid + 1, end); - _merge(array, start, mid, end); -} - -// Note: I decided to make this method private because it is not used from -// outside [segregateNumbers] method -void _merge(List array, int start, int mid, int end) { - final leftArray = array.getRange(start, mid + 1).toList(); - final rightArray = array.getRange(mid + 1, end + 1).toList(); - - int i = 0; - int j = 0; - int k = start; - - while (i < leftArray.length && leftArray[i] < 0) { - array[k] = leftArray[i]; - i++; - k++; - } - - while (j < rightArray.length && rightArray[j] < 0) { - array[k] = rightArray[j]; - j++; - k++; - } - - while (i < leftArray.length) { - array[k] = leftArray[i]; - i++; - k++; - } - - while (j < rightArray.length) { - array[k] = rightArray[j]; - j++; - k++; - } -} diff --git a/test/11_divide_and_conquer_merge_sort_code/bonus_dart_specific_merge_sort_test.dart b/test/11_divide_and_conquer_merge_sort_code/bonus_dart_specific_merge_sort_test.dart deleted file mode 100644 index 0de38f8..0000000 --- a/test/11_divide_and_conquer_merge_sort_code/bonus_dart_specific_merge_sort_test.dart +++ /dev/null @@ -1,33 +0,0 @@ -import 'package:test/test.dart'; - -import 'package:cloudnativebasecamp_algo_01_dart/11_divide_and_conquer_merge_sort_code/bonus_dart_specific_merge_sort.dart'; - -void main() { - group('(Bonus) (Dart Specific) Merge Sort', () { - // NOTE: The same test data in the video - test('with array values of [9, 5, 1, 4]', () async { - final array = [9, 5, 1, 4]; - - mergeSort(array, 0, array.length - 1); - - expect(array, [1, 4, 5, 9]); - }); - - // NOTE: The same test data in the video - test('with array values of [8, 65, 9, 7, 3, 5, 54]', () async { - final array = [8, 65, 9, 7, 3, 5, 54]; - - mergeSort(array, 0, array.length - 1); - - expect(array, [3, 5, 7, 8, 9, 54, 65]); - }); - - test('with single array value of [5]', () async { - final array = [5]; - - mergeSort(array, 0, array.length - 1); - - expect(array, [5]); - }); - }); -} diff --git a/test/13_binary_search_algorithm_code/bonus_binary_search_recursive_test.dart b/test/13_binary_search_algorithm_code/bonus_binary_search_recursive_test.dart deleted file mode 100644 index 1a9ea50..0000000 --- a/test/13_binary_search_algorithm_code/bonus_binary_search_recursive_test.dart +++ /dev/null @@ -1,60 +0,0 @@ -import 'package:test/test.dart'; - -import 'package:cloudnativebasecamp_algo_01_dart/13_binary_search_algorithm_code/bonus_binary_search_recursive.dart'; - -void main() { - group( - '(Bonus) (Recursive Implementation) Binary Search with x values of [1, 2, 3, 4, 5, 6, 7, 8]', - () { - final x = [1, 2, 3, 4, 5, 6, 7, 8]; - - // NOTE: The same test data in the video - test( - 'given 4 as search key ', - () async { - final double key = 4; - - final indexOfKey = binarySearchRecursive(x, key, 0, x.length - 1); - - expect(indexOfKey, 3); - }, - ); - - // NOTE: The same test data in the video - test( - 'given 1 as search key', - () async { - final double key = 1; - - final indexOfKey = binarySearchRecursive(x, key, 0, x.length - 1); - - expect(indexOfKey, 0); - }, - ); - - // NOTE: The same test data in the video - test( - 'given 9 as search key (Does not exist)', - () async { - final double key = 9; - - final indexOfKey = binarySearchRecursive(x, key, 0, x.length - 1); - - expect(indexOfKey, -1); - }, - ); - - // NOTE: The same test data in the video - test( - 'given 0 as search key (Does not exist)', - () async { - final double key = 0; - - final indexOfKey = binarySearchRecursive(x, key, 0, x.length - 1); - - expect(indexOfKey, -1); - }, - ); - }, - ); -} diff --git a/test/15_segregate_positive_and_negative_numbers_code/bonus_dart_specific_segregate_numbers_test.dart b/test/15_segregate_positive_and_negative_numbers_code/bonus_dart_specific_segregate_numbers_test.dart deleted file mode 100644 index 736c276..0000000 --- a/test/15_segregate_positive_and_negative_numbers_code/bonus_dart_specific_segregate_numbers_test.dart +++ /dev/null @@ -1,40 +0,0 @@ -import 'package:test/test.dart'; - -import 'package:cloudnativebasecamp_algo_01_dart/15_segregate_positive_and_negative_numbers_code/bonus_dart_specific_segregate_numbers.dart'; - -void main() { - group('(Bonus) (Dart Specific) Segregate Negative and Positive Numbers', () { - // NOTE: The same test data in the video - test('with array values of [6, -5, 12, 10, -9, -1]', () async { - final array = [6, -5, 12, 10, -9, -1]; - - segregateNumbers(array, 0, array.length - 1); - - expect(array, [-5, -9, -1, 6, 12, 10]); - }); - - test('with array values of [1, 2, 3] (All Positive)', () async { - final array = [1, 2, 3]; - - segregateNumbers(array, 0, array.length - 1); - - expect(array, [1, 2, 3]); - }); - - test('with array values of [-1, -2, -3] (All Negative)', () async { - final array = [-1, -2, -3]; - - segregateNumbers(array, 0, array.length - 1); - - expect(array, [-1, -2, -3]); - }); - - test('with array values of [-1, 0, 1, -2, 2] (Contains Zero)', () async { - final array = [-1, 0, 1, -2, 2]; - - segregateNumbers(array, 0, array.length - 1); - - expect(array, [-1, -2, 0, 1, 2]); - }); - }); -}