From 46bc050f0444eeb36a17274544c5a184d021dd21 Mon Sep 17 00:00:00 2001 From: Vanshraj Tandon Date: Fri, 1 May 2026 03:21:44 +0530 Subject: [PATCH 1/3] Added linear Search implementation --- search/linear_searching.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 search/linear_searching.cpp diff --git a/search/linear_searching.cpp b/search/linear_searching.cpp new file mode 100644 index 00000000000..40cabdc3695 --- /dev/null +++ b/search/linear_searching.cpp @@ -0,0 +1,10 @@ +#include +using namespace std; + +int linearSearch(int arr[], int n, int key) { + for (int i = 0; i < n; i++) { + if (arr[i] == key) + return i; + } + return -1; +} \ No newline at end of file From a5a61102c54f729a63f8c86279c53c30380aa07d Mon Sep 17 00:00:00 2001 From: Vanshraj Tandon Date: Fri, 1 May 2026 03:37:03 +0530 Subject: [PATCH 2/3] Improved linear search with edge case handling and documentation --- search/linear_searching.cpp | 10 ---------- 1 file changed, 10 deletions(-) delete mode 100644 search/linear_searching.cpp diff --git a/search/linear_searching.cpp b/search/linear_searching.cpp deleted file mode 100644 index 40cabdc3695..00000000000 --- a/search/linear_searching.cpp +++ /dev/null @@ -1,10 +0,0 @@ -#include -using namespace std; - -int linearSearch(int arr[], int n, int key) { - for (int i = 0; i < n; i++) { - if (arr[i] == key) - return i; - } - return -1; -} \ No newline at end of file From c5881a968ff01636b204767c23fb123e816bdc01 Mon Sep 17 00:00:00 2001 From: Vanshraj Tandon Date: Fri, 1 May 2026 03:46:47 +0530 Subject: [PATCH 3/3] improved linear search code --- search/linear_search.cpp | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/search/linear_search.cpp b/search/linear_search.cpp index 268aa52c3ac..abbe2d0014f 100644 --- a/search/linear_search.cpp +++ b/search/linear_search.cpp @@ -1,7 +1,8 @@ /** * \file - * \brief [Linear search - * algorithm](https://en.wikipedia.org/wiki/Linear_search) + * \brief Linear search algorithm implementation + * Time Complexity: O(n) + * Space Complexity: O(1) * * @author Unknown author * @author [Ritika Mukherjee](https://github.com/ritikaa17) @@ -11,32 +12,34 @@ #include /// for IO operations /** - * \brief [Algorithm implementation for linear search] + * \brief Algorithm implementation for linear search * \param [in] array array to search in * \param [in] size length of array * \param [in] key key value to search for * \returns index where the key-value occurs in the array - * \returns -1 if key-value not found + * \returns -1 if key-value not found or invalid input */ -int LinearSearch(int *array, int size, int key) { +int LinearSearch(int* array, int size, int key) { + // Handle invalid input + if (array == nullptr || size <= 0) { + return -1; + } + for (int i = 0; i < size; ++i) { if (array[i] == key) { return i; } } - /* We reach here only in case element is not present in array, return an - * invalid entry in that case*/ return -1; } /** * @brief Self-test implementations - * @returns void */ static void tests() { int size = 4; - int *array = new int[size]; + int* array = new int[size]; for (int i = 0; i < size; i++) { array[i] = i; } @@ -57,13 +60,15 @@ static void tests() { assert(LinearSearch(array, size, 1) == 1); assert(LinearSearch(array, size, 5) == 5); + // Edge case test + assert(LinearSearch(nullptr, 0, 5) == -1); + std::cout << "All tests have successfully passed!\n"; - delete[] array; // free memory up + delete[] array; } /** * @brief Main function - * @returns 0 on exit */ int main() { int mode = 0; @@ -83,10 +88,9 @@ int main() { std::cin >> size; } - int *array = new int[size]; + int* array = new int[size]; int key = 0; - // Input for the array elements std::cout << "Enter the array of " << size << " numbers: "; for (int i = 0; i < size; i++) { std::cin >> array[i]; @@ -103,7 +107,7 @@ int main() { } delete[] array; } else { - tests(); // run self-test implementations + tests(); } return 0; -} +} \ No newline at end of file