From 7a7125453571893347b940053e2277807bebfb8f Mon Sep 17 00:00:00 2001 From: ADITYA_RECT <111583094+ADrect@users.noreply.github.com> Date: Tue, 25 Oct 2022 19:44:23 +0530 Subject: [PATCH 1/4] Create quicksort.cpp --- C++/quicksort.cpp | 62 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 C++/quicksort.cpp diff --git a/C++/quicksort.cpp b/C++/quicksort.cpp new file mode 100644 index 0000000..c7d6e2c --- /dev/null +++ b/C++/quicksort.cpp @@ -0,0 +1,62 @@ +#include + +using namespace std; + +void swap(int* ele1, int* ele2) +{ + int t = *ele1; + *ele1 = *ele2; + *ele2 = t; +} + + +int partition (int a[], int beg, int end) +{ + int pivot = a[end]; + int i = (beg - 1); + + for (int j = beg; j <= end - 1; j++) + { + + if (a[j] < pivot) + { + i++; + swap(&a[i], &a[j]); + } + } + swap(&a[i + 1], &a[end]); + return (i + 1); +} + + +void quickSort(int a[], int beg, int end) +{ + if (beg < end) + { + + int pIndex = partition(a, beg, end); + + quickSort(a, beg, pIndex - 1); + quickSort(a, pIndex + 1, end); + } +} + +void display(int a[], int n) +{ + + for (int i = 0; i < n; i++) + cout << a[i] << " "; + cout << endl; +} + +int main() +{ + int a[] = {10, 7, 8, 9, 1, 5}; + int n = sizeof(a) / sizeof(a[0]); + cout << "Elements of array before sorting: \n"; + display(a, n); + quickSort(a, 0, n - 1); + cout << "Elements of array after sorting: \n"; + display(a, n); + return 0; +} From 0477fe4a005665ce9d3f9a643c347d2fed909dc6 Mon Sep 17 00:00:00 2001 From: ADITYA_RECT <111583094+ADrect@users.noreply.github.com> Date: Tue, 25 Oct 2022 19:49:46 +0530 Subject: [PATCH 2/4] Create merge.cpp --- C++/merge.cpp | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 C++/merge.cpp diff --git a/C++/merge.cpp b/C++/merge.cpp new file mode 100644 index 0000000..1d0883e --- /dev/null +++ b/C++/merge.cpp @@ -0,0 +1,74 @@ +#include +using namespace std; + +void merge(int arr[], int start, int mid, int end) { + + int len1 = mid - start + 1; + int len2 = end - mid; + + int leftArr[len1], rightArr[len2]; + + for (int i = 0; i < len1; i++) + leftArr[i] = arr[start + i]; + for (int j = 0; j < len2; j++) + rightArr[j] = arr[mid + 1 + j]; + + int i, j, k; + i = 0; + j = 0; + k = start; + + while (i < len1 && j < len2) { + if (leftArr[i] <= rightArr[j]) { + arr[k] = leftArr[i]; + i++; + } else { + arr[k] = rightArr[j]; + j++; + } + k++; + } + + while (i < len1) { + arr[k] = leftArr[i]; + i++; + k++; + } + + while (j < len2) { + arr[k] = rightArr[j]; + j++; + k++; + } +} + +void mergeSort(int arr[], int start, int end) { + if (start < end) { + int mid = start + (end - start) / 2; + + mergeSort(arr, start, mid); + mergeSort(arr, mid + 1, end); + + merge(arr, start, mid, end); + } +} + +void display(int arr[], int size) { + for (int i = 0; i < size; i++) + cout << arr[i] << " "; + cout << endl; +} + +int main() { + int arr[] = {6, 5, 12, 10, 9, 1}; + int size = sizeof(arr) / sizeof(arr[0]); + + cout << "Original array \n"; + display(arr, size); + + mergeSort(arr, 0, size - 1); + + cout << "Sorted array \n"; + display(arr, size); + return 0; +} From ab5021d47c95a217548748ea797e661af80ab9c8 Mon Sep 17 00:00:00 2001 From: ADITYA_RECT <111583094+ADrect@users.noreply.github.com> Date: Tue, 25 Oct 2022 19:52:24 +0530 Subject: [PATCH 3/4] Create Heap.cpp --- Heap.cpp | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 Heap.cpp diff --git a/Heap.cpp b/Heap.cpp new file mode 100644 index 0000000..f0d2346 --- /dev/null +++ b/Heap.cpp @@ -0,0 +1,57 @@ +#include + using namespace std; + + void heapify(int arr[], int n, int i) { + int max = i; + int leftChild = 2 * i + 1; + int rightChild = 2 * i + 2; + + + if (leftChild < n && arr[leftChild] > arr[max]) + max = leftChild; + + + if (rightChild < n && arr[rightChild] > arr[max]) + max = rightChild; + + + if (max != i) { + swap(arr[i], arr[max]); + heapify(arr, n, max); + } + } + + + + void heapSort(int arr[], int n) { + + for (int i = n / 2 - 1; i >= 0; i--) + heapify(arr, n, i); + + + for (int i = n - 1; i >= 0; i--) { + swap(arr[0], arr[i]); + + heapify(arr, i, 0); + } + } + + + void display(int arr[], int n) { + for (int i = 0; i < n; ++i) + cout << arr[i] << " "; + cout << "\n"; + } + + + int main() { + int arr[] = {11, 34, 9, 5, 16, 10}; + int n = sizeof(arr) / sizeof(arr[0]); + cout << "Original array:\n"; + display(arr, n); + heapSort(arr, n); + + cout << "Sorted array:\n"; + display(arr, n); + } + From d5476c8601f5c8e8586af50507bc38a63c5335ba Mon Sep 17 00:00:00 2001 From: ADITYA_RECT <111583094+ADrect@users.noreply.github.com> Date: Tue, 25 Oct 2022 19:53:00 +0530 Subject: [PATCH 4/4] Create Heap.cpp --- C++/Heap.cpp | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 C++/Heap.cpp diff --git a/C++/Heap.cpp b/C++/Heap.cpp new file mode 100644 index 0000000..f0d2346 --- /dev/null +++ b/C++/Heap.cpp @@ -0,0 +1,57 @@ +#include + using namespace std; + + void heapify(int arr[], int n, int i) { + int max = i; + int leftChild = 2 * i + 1; + int rightChild = 2 * i + 2; + + + if (leftChild < n && arr[leftChild] > arr[max]) + max = leftChild; + + + if (rightChild < n && arr[rightChild] > arr[max]) + max = rightChild; + + + if (max != i) { + swap(arr[i], arr[max]); + heapify(arr, n, max); + } + } + + + + void heapSort(int arr[], int n) { + + for (int i = n / 2 - 1; i >= 0; i--) + heapify(arr, n, i); + + + for (int i = n - 1; i >= 0; i--) { + swap(arr[0], arr[i]); + + heapify(arr, i, 0); + } + } + + + void display(int arr[], int n) { + for (int i = 0; i < n; ++i) + cout << arr[i] << " "; + cout << "\n"; + } + + + int main() { + int arr[] = {11, 34, 9, 5, 16, 10}; + int n = sizeof(arr) / sizeof(arr[0]); + cout << "Original array:\n"; + display(arr, n); + heapSort(arr, n); + + cout << "Sorted array:\n"; + display(arr, n); + } +