diff --git a/sort/insertionSort.cpp b/sort/insertionSort.cpp new file mode 100644 index 0000000..1f71c9f --- /dev/null +++ b/sort/insertionSort.cpp @@ -0,0 +1,28 @@ +#include + +using namespace std; +void printArray (int arg[], int length) { + for (int n = 0; n < length; ++n) + cout << arg[n] << ' '; + cout << '\n'; +} + + +void insertionSort(int array [], int leftIndex, int rightIndex){ + for (int i = leftIndex+1; i <= rightIndex; i++){ + int key = array[i]; + int j = i-1; + while(j>= leftIndex && array[j] > key){ + array[j+1] = array[j]; + j--; + } + array[j+1] = key; + } + printArray(array,rightIndex); +} + +int main(){ + int array [] = {9,3,8,2, 4 , 1, 7 ,6,10}; + int size = sizeof(array) / sizeof(array[0]); + insertionSort(array, 0 , size); +} diff --git a/utils/recursiveBinarySearch.cpp b/utils/recursiveBinarySearch.cpp new file mode 100644 index 0000000..c424c6d --- /dev/null +++ b/utils/recursiveBinarySearch.cpp @@ -0,0 +1,35 @@ +#include + +using namespace std; + +int binarySearch(int array [], int leftIndex, int rightIndex, int toSearch){ + if(leftIndex > rightIndex) + return -1; + + int middle = leftIndex + (rightIndex - leftIndex ) / 2; + + if(array[middle] == toSearch){ + return middle; + } + if(array[middle] > toSearch){ + return binarySearch(array, leftIndex, middle - 1 ,toSearch); + } + + return binarySearch(array, middle + 1,rightIndex ,toSearch); + +} + + +int main(){ + int array[] = {30, 82 ,74 ,26 ,99 ,26 ,3 ,82 ,54 ,4 ,28 ,1 ,88 ,89 ,66 ,69 ,83 ,58 , 6, + 31 ,13 ,47 ,59 ,85 ,7, 20 ,22 ,48 ,77 ,92 ,52 ,2 ,92 ,15 ,94 ,43 ,37 ,64 ,13 ,83 ,13 ,62 }; + int toSearch; + int n = sizeof(array)/sizeof(array[0]); + cout << "number to seach" << endl; + + cin >> toSearch; + + sort(array, array + n); + + cout << "in positon = "<< binarySearch(array,0, n - 1 , toSearch) << endl; +} \ No newline at end of file