diff --git a/Merge Sort.cpp b/Merge Sort.cpp new file mode 100644 index 000000000..9891b8630 --- /dev/null +++ b/Merge Sort.cpp @@ -0,0 +1,99 @@ +#include +using namespace std; + +void merge(int arr[], int l, int m, int r) +{ + int i, j, k; + int n1 = m - l + 1; + int n2 = r - m; + + int L[n1], R[n2]; + + + for (i = 0; i < n1; i++) + L[i] = arr[l + i]; + for (j = 0; j < n2; j++) + R[j] = arr[m + 1+ j]; + + i = 0; + j = 0; + k = l; + while (i < n1 && j < n2) + { + if (L[i] <= R[j]) + { + arr[k] = L[i]; + i++; + } + else + { + arr[k] = R[j]; + j++; + } + k++; + } + + while (i < n1) + { + arr[k] = L[i]; + i++; + k++; + } + + + while (j < n2) + { + arr[k] = R[j]; + j++; + k++; + } +} + + +void mergeSort(int arr[], int l, int r) +{ + if (l < r) + { + + int m = l+(r-l)/2; + + + mergeSort(arr, l, m); + mergeSort(arr, m+1, r); + + merge(arr, l, m, r); + } +} + + +void show(int A[], int size) +{ + int i; + for (i=0; i < size; i++) + cout<>size; + + int arr[size]; + + cout<<"\nEnter the unsorted elements : "; + + for (int i = 0; i < size; ++i) + { + cout<<"\n"; + cin>>arr[i]; + } + + mergeSort(arr, 0, size); + + cout<<"Sorted array\n"; + show(arr, size); + return 0; +} diff --git a/Quick Sort.cpp b/Quick Sort.cpp new file mode 100644 index 000000000..b2bb21a77 --- /dev/null +++ b/Quick Sort.cpp @@ -0,0 +1,69 @@ +/* C implementation QuickSort */ +#include +using namespace std; + +int partition (int arr[], int low, int high) +{ + int pivot = arr[high]; // pivot + int i = (low - 1); // Index of smaller element + + for (int j = low; j >size; + + int arr[size]; + + cout<<"\nEnter the unsorted elements : "; + + for (int i = 0; i < size; ++i) + { + cout<<"\n"; + cin>>arr[i]; + } + quickSort(arr, 0, size); + cout<<"Sorted array\n"; + show(arr, size); + return 0; +}