Merge, Heap, Quick Sorts
Merge, Heap, Quick Sorts
---MERGE SORT:---
#include <stdio.h>
#include <stdlib.h>
void merge(int arr[], int left, int mid, int right) {
int i, j, k;
int n1 = mid - left + 1;
int n2 = right - mid;
i = 0;
j = 0;
k = left;
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 left, int right) {
if (left < right) {
int mid = left + (right - left) / 2;
}
mergeSort(arr, 0, arrSize - 1);
Original array: 12 11 13 5 6 7
Sorted array: 5 6 7 11 12 13
---HEAP SORT:---
#include <stdio.h>
#include <stdlib.h>
largest = left;
if (right < n && arr[right] > arr[largest])
largest = right;
if (largest != i) {
int temp = arr[i];
arr[i] = arr[largest];
arr[largest] = temp;
heapify(arr, n, largest);
}
}
arr[0] = arr[i];
arr[i] = temp;
heapify(arr, i, 0);
}}
int main() {
int arr[] = {12, 11, 13, 5, 6, 7};
int arrSize = sizeof(arr) / sizeof(arr[0]);
printf("Original array: ");
for (int i = 0; i < arrSize; i++) {
Original array: 12 11 13 5 6 7
Sorted array: 5 6 7 11 12 13
---QUICK SORT:---
#include <stdio.h>
#include <stdlib.h>
arr[j] = temp;
}}
int temp = arr[i + 1];
arr[i + 1] = arr[high];
arr[high] = temp;
return i + 1;
}
void quickSort(int arr[], int low, int high) {
if (low < high) {
int pi = partition(arr, low, high);
}
OUTPUT:
Original array: 12 11 13 5 6 7
Sorted array: 5 6 7 11 12 13