diff --git a/Searching Algorithm/Interpolation Search/Interpolation_Search.cpp b/Searching Algorithm/Interpolation Search/Interpolation_Search.cpp new file mode 100644 index 0000000..aad18c3 --- /dev/null +++ b/Searching Algorithm/Interpolation Search/Interpolation_Search.cpp @@ -0,0 +1,50 @@ +#include +using namespace std; + + +int interpolationSearch(int arr[], int n, int x) +{ + + int lo = 0, hi = (n - 1); + + while (lo <= hi && x >= arr[lo] && x <= arr[hi]) + { + if (lo == hi) + { + if (arr[lo] == x) return lo; + return -1; + } + + int pos = lo + (((double)(hi - lo) / + (arr[hi] - arr[lo])) * (x - arr[lo])); + + if (arr[pos] == x) + return pos; + + if (arr[pos] < x) + lo = pos + 1; + + else + hi = pos - 1; + } + return -1; +} + +int main() +{ + + int arr[] = {10, 12, 13, 16, 18, 19, 20, 21, + 22, 23, 24, 33, 35, 42, 47}; + int n = sizeof(arr)/sizeof(arr[0]); + + int x = 18; + int index = interpolationSearch(arr, n, x); + + if (index != -1) + cout << "Element found at index " << index; + else + cout << "Element not found."; + return 0; +} + + diff --git a/Searching Algorithm/Interpolation Search/Interpolation_Search.exe b/Searching Algorithm/Interpolation Search/Interpolation_Search.exe new file mode 100644 index 0000000..b050e30 Binary files /dev/null and b/Searching Algorithm/Interpolation Search/Interpolation_Search.exe differ diff --git a/Sorting Algorithms/quicksort.cpp b/Sorting Algorithms/quicksort.cpp new file mode 100644 index 0000000..1a96a18 --- /dev/null +++ b/Sorting Algorithms/quicksort.cpp @@ -0,0 +1,58 @@ +#include +using namespace std; + +void swap(int* a, int* b) +{ + int t = *a; + *a = *b; + *b = t; +} + +int partition (int arr[], int low, int high) +{ + int pivot = arr[high]; + int i = (low - 1); + + for (int j = low; j <= high - 1; j++) + { + + if (arr[j] < pivot) + { + i++; + swap(&arr[i], &arr[j]); + } + } + swap(&arr[i + 1], &arr[high]); + return (i + 1); +} + +void quickSort(int arr[], int low, int high) +{ + if (low < high) + { + + int pi = partition(arr, low, high); + + quickSort(arr, low, pi - 1); + quickSort(arr, pi + 1, high); + } +} + +void printArray(int arr[], int size) +{ + int i; + for (i = 0; i < size; i++) + cout << arr[i] << " "; + cout << endl; +} + +int main() +{ + int arr[] = {10, 7, 8, 9, 1, 5}; + int n = sizeof(arr) / sizeof(arr[0]); + quickSort(arr, 0, n - 1); + cout << "Sorted array: \n"; + printArray(arr, n); + return 0; +} +