diff --git a/search/interpolation_search2.cpp b/search/interpolation_search2.cpp index 0e6d3b79d..93fa6cd83 100644 --- a/search/interpolation_search2.cpp +++ b/search/interpolation_search2.cpp @@ -1,4 +1,17 @@ +/** + * \file + * \brief [Interpolation + * search](https://en.wikipedia.org/wiki/Interpolation_search) algorithm + */ #include + +/** function to search the value in an array using interpolation search + * \param [in] arr array to search in + * \param [in] value value to search for + * \param [in] len length of array + * \returns index where the value is found + * \returns -1 if not found + */ int InterpolationSearch(int A[], int n, int x) { int low = 0; int high = n - 1; @@ -11,18 +24,21 @@ int InterpolationSearch(int A[], int n, int x) { else low = mid + 1; // x lies after mid } + return -1; } +/** main function */ int main() { int A[] = {2, 4, 5, 7, 13, 14, 15, 23}; int x = 17; - int index = InterpolationSearch( - A, 8, x); // passed array A inside the InterpolationSearch function - if (index != -1) - std::cout << "Number " << x << " is at " << index; + + ///< passed array A inside the InterpolationSearch function + int index = InterpolationSearch(A, 8, x); + if (index < 0) + std::cout << "Number " << x << " not found" << std::endl; else - std::cout << "Number " << x << " not found"; + std::cout << "Number " << x << " is at " << index << std::endl; } // randomly set x bcoz array was defined by us , therefore not reasonable for