Home > Backend Development > C++ > Merge sort technique explained in C

Merge sort technique explained in C

WBOY
Release: 2023-09-05 14:05:05
forward
1107 people have browsed it

Sort is the process of arranging elements in ascending (or) descending order.

Types of sorting

C language provides five sorting techniques, as follows-

  • Bubble sort (or) exchange sort
  • Select Sorting
  • Insertion sort (or) linear sort
  • Quick sort (or) partition exchange sort
  • Merge sort (or) external sort

Merge sort

Merge sort is a divide and conquer method. It splits the array in half, conquers and merges (combines) it recursively.

Let us consider an example given below -

Take an unsorted array and apply merge sort technique to sort the array.

38, 27, 43, 3, 9, 82, 10

Merge sort technique explained in C

Now, combine the arrays by sorting as shown below-

Merge sort technique explained in C

Example

The following is a C program to sort elements using merge sort technique -

Real-time demonstration

#include <stdio.h>
#define max 10
int a[11] = { 10, 14, 19, 26, 27, 31, 33, 35, 42, 44, 0 };
int b[10];
void merging(int low, int mid, int high) {
   int l1, l2, i;
   for(l1 = low, l2 = mid + 1, i = low; l1 <= mid && l2 <= high; i++) {
      if(a[l1] <= a[l2])
         b[i] = a[l1++];
      else
         b[i] = a[l2++];
   }
   while(l1 <= mid)
      b[i++] = a[l1++];
   while(l2 <= high)
      b[i++] = a[l2++];
   for(i = low; i <= high; i++)
      a[i] = b[i];
   }
   void sort(int low, int high) {
      int mid;
      if(low < high) {
         mid = (low + high) / 2;
         sort(low, mid);
         sort(mid+1, high);
         merging(low, mid, high);
      } else {
      return;
   }
}
int main() {
   int i;
   printf("List before sorting</p><p>");
   for(i = 0; i <= max; i++)
   printf("%d ", a[i]);
   sort(0, max);
   printf("</p><p>List after sorting</p><p>");
   for(i = 0; i <= max; i++)
   printf("%d ", a[i]);
}
Copy after login

Output

When executing the above program, the following output will be produced-

List before sorting
10 14 19 26 27 31 33 35 42 44 0
List after sorting
0 10 14 19 26 27 31 33 35 42 44
Copy after login

The above is the detailed content of Merge sort technique explained in C. For more information, please follow other related articles on the PHP Chinese website!

source:tutorialspoint.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template