Paste Search Dynamic
Recent pastes
mergeSort
  1. #include <stdio.h>
  2.  
  3. void merge(int arr[], int p, int q, int r) {
  4.  
  5.   int n1 = q - p + 1;
  6.   int n2 = r - q;
  7.  
  8.   int L[n1], M[n2];
  9.  
  10.   for (int i = 0; i < n1; i++)
  11.     L[i] = arr[p + i];
  12.   for (int j = 0; j < n2; j++)
  13.     M[j] = arr[q + 1 + j];
  14.   int i, j, k;
  15.   i = 0;
  16.   j = 0;
  17.   k = p;
  18.   while (i < n1 && j < n2) {
  19.     if (L[i] <= M[j]) {
  20.       arr[k] = L[i];
  21.       i++;
  22.     } else {
  23.       arr[k] = M[j];
  24.       j++;
  25.     }
  26.     k++;
  27.   }
  28.   while (i < n1) {
  29.     arr[k] = L[i];
  30.     i++;
  31.     k++;
  32.   }
  33.  
  34.   while (j < n2) {
  35.     arr[k] = M[j];
  36.     j++;
  37.     k++;
  38.   }
  39. }
  40.  
  41. void mergeSort(int arr[], int l, int r) {
  42.   if (l < r) {
  43.  
  44.  
  45.     int m = l + (r - l) / 2;
  46.  
  47.     mergeSort(arr, l, m);
  48.     mergeSort(arr, m + 1, r);
  49.  
  50.    
  51.     merge(arr, l, m, r);
  52.   }
  53. }
  54.  
  55. // Print the array
  56. void printArray(int arr[], int size) {
  57.   for (int i = 0; i < size; i++)
  58.     printf("%d ", arr[i]);
  59.   printf("n");
  60. }
  61.  
  62. int main() {
  63.   int arr[] = {6, 5, 12, 10, 9, 1, 62, 56, 67};
  64.   int size = sizeof(arr) / sizeof(arr[0]);
  65.  
  66.   mergeSort(arr, 0, size - 1);
  67.  
  68.   printf("Sorted array: n");
  69.   print Array(arr, size);
  70. }
Parsed in 0.010 seconds