SlideShare a Scribd company logo
MERGE SORT UNDERSTANDING CODE in CBy-MohitTare      mohittare@yahoo.com
MERGE  SORT – understanding code#include<stdio.h>intmergesort(int*,int,int);void merge(int*,int,int,int);int main(){int a[5]={3,5,2,6,8};inti;mergesort(a,0,4);	for(i=0;i<5;i++)printf("\n%d",a[i]);	return 0;}3    5    2     6    8
intmergesort(inta[], int low, int high){			0,4int mid;			if(low<high){    mid=(low+high)/2;(2)mergesort(a,low,mid);(a,0,2)mergesort(a,mid+1,high);merge(a,low,high,mid);}return(0);}intmergesort(int a[], int low, int high){			0,0int mid;if(low<high)(0<0-false){mid=(low+high)/2;mergesort(a,low,mid);mergesort(a,mid+1,high);merge(a,low,high,mid);}return(0);(now return will give control toNearest function call)}intmergesort(int a[], int low, int high){			0,2int mid;if(low<high){mid=(low+high)/2;(1)mergesort(a,low,mid);(0,1)mergesort(a,mid+1,high);merge(a,low,high,mid);}return(0);}intmergesort(int a[], int low, int high){			0,1int mid;if(low<high){mid=(low+high)/2;(0)mergesort(a,low,mid);(0,0)mergesort(a,mid+1,high);merge(a,low,high,mid);}return(0);}
intmergesort(inta[], int low, int high){			0,1int mid;if(low<high){    mid=(low+high)/2;(0)mergesort(a,low,mid);mergesort(a,mid+1,high);merge(a,low,high,mid);}		0,1,0return(0);}intmergesort(int a[], int low, int high){			0,0int mid;if(low<high)(0<0-false){mid=(low+high)/2;mergesort(a,low,mid);mergesort(a,mid+1,high);merge(a,low,high,mid);}return(0);}intmergesort(int a[], int low, int high){			(1,1)int mid;if(low<high)(1<1-false){mid=(low+high)/2;mergesort(a,low,mid);mergesort(a,mid+1,high);merge(a,low,high,mid);}return(0);}intmergesort(int a[], int low, int high){			0,1int mid;if(low<high){mid=(low+high)/2;(0)mergesort(a,low,mid);(0,0)mergesort(a,mid+1,high);(0+1,1)merge(a,low,high,mid);}return(0);}
Until now array has been divided into 1 element each. Now array is merged and sorted in the merge function
void merge(int a[], int low, int high, int mid){                                 0,1,0int b[20],l1,r1,i;l1=low;0										r1=mid+1;1					      l1       r1                                          ii=low;0					while((l1<=mid) && (r1<=high)){          0<=0                      1<=1	if(a[l1]<a[r1])	{    3<5		b[i]=a[l1];b[0]=3		l1=l1+1;l1=1i=i+1;i1=1	}	else 	{		b[i]=a[r1];		r1=r1+1;i=i+1;	}}while(l1<=mid)1<=0{	b[i]=a[l1];	l1=l1+1;i=i+1;}while(r1<=high)1<=1{	b[i]=a[r1];b[1]=5	r1=r1+1;r1=2i=i+1;i=2}For(j=low;j<i;j++)	a[j]=b[j];}3                	 3    5    2     6    8	 1.3    5            	 3    5    2     6    8	 i3    5
|----------------------;|----------------------;while(r1<=high){	b[i]=a[r1];	r1=r1+1;i=i+1;}It will transfer the  current values  of   b array to  a arrayfor(j=low;j<i ;j++){	a[j]=b[j];}}
IN  next recursive pass or call to merge 3    5            	 3    5    2     6    8	 void merge(int a[], int low, int high, int mid){	            0,2,1int b[20],l1,r1,i;l1=low;0r1=mid+1;2                                                                                             l1             r1              i=low;0while((l1<=mid) && (r1<=high)){          0<=1                    2<=2	if(a[l1]<a[r1])	{    3<2		b[i]=a[l1];		l1=l1+1;                                                      l1i=i+1;	}	else 	{		b[i]=a[r1];b[0]=2		r1=r1+1;r1=3i=i+1;i=1	}}while(l1<=mid)0<=1{	b[i]=a[l1];b1=3        	l1=l1+1;l1=1            i=i+1;i=2                   }while(r1<=high)3<=2{	b[i]=a[r1];	r1=r1+1;i=i+1;}for(j=low;j<i;j++)	a[j]=b[j];}3    5            	 3    5    2     6    8	 3    5    2     6    8	 2    5            	 r13    5    2     6    8	 2    3            	 3    5    2     6    8	 2    3     5
IN  next recursive pass or call to merge 2    3     5       	 2    3    5     6    8	 void merge(int a[], int low, int high, int mid){		a,3,4,3int b[20],l1,r1,i;l1=low;l1=3r1=mid+1;r1=4i=low;i=3while((l1<=mid) && (r1<=high)){          3<=3                 4<=4	if(a[l1]<a[r1])	{		b[i]=a[l1];b[3]=6		l1=l1+1;l1=4i=i+1;i1=4	}	else 	{		b[i]=a[r1];		r1=r1+1;i=i+1;	}}while(l1<=mid){	b[i]=a[l1];	l1=l1+1;i=i+1;}while(r1<=high)4<=4{	b[i]=a[r1];b[4]=8	r1=r1+1;r1=5i=i+1;i=5}For(j=low;j<i;j++)	a[j]=b[j];}2    3    5    6    8	 2    3     5       	 2    3     5     6  	 2    3    5     6    8	 2    3     5    6    8
IN  LAST  recursive pass or call to merge 2    3     5    6    8	 2    3    5     6    8	 void merge(int a[], int low, int high, int mid){	           0,4,2int b[20],l1,r1,i;l1=low;l1=0r1=mid+1;r1=3i=low;i=0while((l1<=mid) && (r1<=high)){             0<=2              3<=4	if(a[l1]<a[r1])	{     2<6		b[i]=a[l1];b[0]=2		l1=l1+1;l1=1i=i+1;i=1	}	else 	{		b[i]=a[r1];		r1=r1+1;i=i+1;	}}while(l1<=mid){	b[i]=a[l1];	l1=l1+1;i=i+1;}while(r1<=high)3<=4{	b[i]=a[r1];b[3]=6	r1=r1+1;r1=4i=i+1;i=4}For(j=low;j<i;j++	a[j]=b[j];}2    3    5    6    8	 2    3     5    6    8	 2    3    5    6    8	 2    3     5    6    8	 2    3    5    6    8	 2    3     5    6    8	 2    3    5    6    8	 2    3     5    6    8	 2    3    5    6    8	 2    3     5    6    8
FINALLYSORTED ARRAY2    3    5    6    8
THANK YOU!

More Related Content

What's hot (20)

PDF
Quicksort: illustrated step-by-step walk through
Yoshi Watanabe
 
PPTX
Quick sort-Data Structure
Jeanie Arnoco
 
PPTX
Integration
Chhitiz Shrestha
 
PPT
Arithmetic circuits
Sanjay Saluth
 
PPTX
Circular queue
Lovely Professional University
 
PDF
Recurrence relation solutions
subhashchandra197
 
PPTX
K map.
Chethan N Shetty
 
PPTX
Marge Sort
Ankit92Chitnavis
 
PDF
Merge sort
Abdelrahman Saleh
 
PPTX
Merge sort
Sindhoo Oad
 
PPTX
Restoring & Non-Restoring Division Algorithm By Sania Nisar
Sania Nisar
 
PPT
Sorting network
BBAU Lucknow University
 
PPTX
Binary search
AparnaKumari31
 
PDF
Stack
Zaid Shabbir
 
DOCX
Program to remove Left factoring
Shraddha Patel
 
DOCX
Convolution
sridharbommu
 
PDF
Design and analysis of computer algorithms
Krishna Chaytaniah
 
PPTX
Polyphase
Adrita Chakraborty
 
PPT
Recurrences
Ala' Mohammad
 
PPT
Mergesort
luzenith_g
 
Quicksort: illustrated step-by-step walk through
Yoshi Watanabe
 
Quick sort-Data Structure
Jeanie Arnoco
 
Integration
Chhitiz Shrestha
 
Arithmetic circuits
Sanjay Saluth
 
Recurrence relation solutions
subhashchandra197
 
Marge Sort
Ankit92Chitnavis
 
Merge sort
Abdelrahman Saleh
 
Merge sort
Sindhoo Oad
 
Restoring & Non-Restoring Division Algorithm By Sania Nisar
Sania Nisar
 
Sorting network
BBAU Lucknow University
 
Binary search
AparnaKumari31
 
Program to remove Left factoring
Shraddha Patel
 
Convolution
sridharbommu
 
Design and analysis of computer algorithms
Krishna Chaytaniah
 
Recurrences
Ala' Mohammad
 
Mergesort
luzenith_g
 

Viewers also liked (20)

PDF
Quick Sort , Merge Sort , Heap Sort
Mohammed Hussein
 
PPTX
Merge sort
Chusnul Khotimah
 
PDF
Merge sort: illustrated step-by-step walk through
Yoshi Watanabe
 
PPTX
Merge sort and quick sort
Shakila Mahjabin
 
PPTX
Merge sort algorithm
Shubham Dwivedi
 
PPTX
Merge sort
Maher Alshammari
 
PPT
Algorithm: Quick-Sort
Tareq Hasan
 
PPTX
Shell sort in Data Structure Using C
Ashish Gaurkhede
 
PPT
Shell sort[1]
Niyati Thaker
 
PPTX
Insertion and merge sort
Preetham Devisetty
 
PDF
Merge sort
Hitesh Kumar
 
ODP
Merge sort
Nicholas Case
 
PPSX
Shellsort
IUPSM
 
PPTX
Merging files (Data Structure)
Tech_MX
 
PPT
05 dc1
Hira Gul
 
PPTX
Shell sort slide
Bella Angriani
 
PPTX
Shell sort
Felipe Weizenmann
 
PPTX
Merge sort
Kumar
 
PPT
Shell sort
Rajendran
 
PPTX
BUCKET SORT
eidyyolisbet
 
Quick Sort , Merge Sort , Heap Sort
Mohammed Hussein
 
Merge sort
Chusnul Khotimah
 
Merge sort: illustrated step-by-step walk through
Yoshi Watanabe
 
Merge sort and quick sort
Shakila Mahjabin
 
Merge sort algorithm
Shubham Dwivedi
 
Merge sort
Maher Alshammari
 
Algorithm: Quick-Sort
Tareq Hasan
 
Shell sort in Data Structure Using C
Ashish Gaurkhede
 
Shell sort[1]
Niyati Thaker
 
Insertion and merge sort
Preetham Devisetty
 
Merge sort
Hitesh Kumar
 
Merge sort
Nicholas Case
 
Shellsort
IUPSM
 
Merging files (Data Structure)
Tech_MX
 
05 dc1
Hira Gul
 
Shell sort slide
Bella Angriani
 
Shell sort
Felipe Weizenmann
 
Merge sort
Kumar
 
Shell sort
Rajendran
 
BUCKET SORT
eidyyolisbet
 
Ad

Similar to Merge sort code in C explained (20)

PDF
Sorting Algorithms and their implementations
ChakravarthiMusic1
 
PDF
Ds sorting
Hamza Khan
 
DOCX
Assignment 2 data structures National University Of Modern Languages
itsaif1312
 
PPT
Sorting algos > Data Structures & Algorithums
Ain-ul-Moiz Khawaja
 
PDF
Working of Merge Sort Code
Muhammad Abdullah
 
PPT
computer notes - Data Structures - 39
ecomputernotes
 
PPT
Array Presentation (EngineerBaBu.com)
EngineerBabu
 
PPT
Data Structure Sorting
Muhazzab Chouhadry
 
PPTX
Sorting in data structures and algorithms , it has all the necessary points t...
BhumikaBiyani1
 
PPT
Computer notes - Mergesort
ecomputernotes
 
PPT
Unit6 C
arnold 7490
 
PPTX
Sortings .pptx
MuhammadSheraz836877
 
DOCX
DAA Lab File C Programs
Kandarp Tiwari
 
PDF
Please I want a detailed complete answers for each part.Then make.pdf
siennatimbok52331
 
PPT
Tri Merge Sorting Algorithm
Ashim Sikder
 
PPT
Lec 6 Divide and conquer of Data Structures & Algortihms
haseebanjum2611
 
PPTX
Merge sort-algorithm for computer science engineering students
University of Science and Technology Chitttagong
 
PPT
quicksort.ppt
GaganaP13
 
PPT
Quick & Merge Sort.ppt
MuhammadSheraz836877
 
Sorting Algorithms and their implementations
ChakravarthiMusic1
 
Ds sorting
Hamza Khan
 
Assignment 2 data structures National University Of Modern Languages
itsaif1312
 
Sorting algos > Data Structures & Algorithums
Ain-ul-Moiz Khawaja
 
Working of Merge Sort Code
Muhammad Abdullah
 
computer notes - Data Structures - 39
ecomputernotes
 
Array Presentation (EngineerBaBu.com)
EngineerBabu
 
Data Structure Sorting
Muhazzab Chouhadry
 
Sorting in data structures and algorithms , it has all the necessary points t...
BhumikaBiyani1
 
Computer notes - Mergesort
ecomputernotes
 
Unit6 C
arnold 7490
 
Sortings .pptx
MuhammadSheraz836877
 
DAA Lab File C Programs
Kandarp Tiwari
 
Please I want a detailed complete answers for each part.Then make.pdf
siennatimbok52331
 
Tri Merge Sorting Algorithm
Ashim Sikder
 
Lec 6 Divide and conquer of Data Structures & Algortihms
haseebanjum2611
 
Merge sort-algorithm for computer science engineering students
University of Science and Technology Chitttagong
 
quicksort.ppt
GaganaP13
 
Quick & Merge Sort.ppt
MuhammadSheraz836877
 
Ad

Recently uploaded (20)

PDF
The-Ever-Evolving-World-of-Science (1).pdf/7TH CLASS CURIOSITY /1ST CHAPTER/B...
Sandeep Swamy
 
PPTX
Growth and development and milestones, factors
BHUVANESHWARI BADIGER
 
PDF
LAW OF CONTRACT (5 YEAR LLB & UNITARY LLB )- MODULE - 1.& 2 - LEARN THROUGH P...
APARNA T SHAIL KUMAR
 
PPTX
How to Convert an Opportunity into a Quotation in Odoo 18 CRM
Celine George
 
PDF
Chapter-V-DED-Entrepreneurship: Institutions Facilitating Entrepreneurship
Dayanand Huded
 
PPT
Talk on Critical Theory, Part One, Philosophy of Social Sciences
Soraj Hongladarom
 
PDF
0725.WHITEPAPER-UNIQUEWAYSOFPROTOTYPINGANDUXNOW.pdf
Thomas GIRARD, MA, CDP
 
PPTX
grade 5 lesson matatag ENGLISH 5_Q1_PPT_WEEK4.pptx
SireQuinn
 
PDF
Isharyanti-2025-Cross Language Communication in Indonesian Language
Neny Isharyanti
 
PDF
Generative AI: it's STILL not a robot (CIJ Summer 2025)
Paul Bradshaw
 
PDF
Biological Bilingual Glossary Hindi and English Medium
World of Wisdom
 
PDF
ARAL-Orientation_Morning-Session_Day-11.pdf
JoelVilloso1
 
PDF
ARAL_Orientation_Day-2-Sessions_ARAL-Readung ARAL-Mathematics ARAL-Sciencev2.pdf
JoelVilloso1
 
PDF
LAW OF CONTRACT ( 5 YEAR LLB & UNITARY LLB)- MODULE-3 - LEARN THROUGH PICTURE
APARNA T SHAIL KUMAR
 
PPTX
A PPT on Alfred Lord Tennyson's Ulysses.
Beena E S
 
PDF
Lesson 2 - WATER,pH, BUFFERS, AND ACID-BASE.pdf
marvinnbustamante1
 
PDF
The History of Phone Numbers in Stoke Newington by Billy Thomas
History of Stoke Newington
 
PDF
The Constitution Review Committee (CRC) has released an updated schedule for ...
nservice241
 
PDF
Dimensions of Societal Planning in Commonism
StefanMz
 
PDF
Exploring the Different Types of Experimental Research
Thelma Villaflores
 
The-Ever-Evolving-World-of-Science (1).pdf/7TH CLASS CURIOSITY /1ST CHAPTER/B...
Sandeep Swamy
 
Growth and development and milestones, factors
BHUVANESHWARI BADIGER
 
LAW OF CONTRACT (5 YEAR LLB & UNITARY LLB )- MODULE - 1.& 2 - LEARN THROUGH P...
APARNA T SHAIL KUMAR
 
How to Convert an Opportunity into a Quotation in Odoo 18 CRM
Celine George
 
Chapter-V-DED-Entrepreneurship: Institutions Facilitating Entrepreneurship
Dayanand Huded
 
Talk on Critical Theory, Part One, Philosophy of Social Sciences
Soraj Hongladarom
 
0725.WHITEPAPER-UNIQUEWAYSOFPROTOTYPINGANDUXNOW.pdf
Thomas GIRARD, MA, CDP
 
grade 5 lesson matatag ENGLISH 5_Q1_PPT_WEEK4.pptx
SireQuinn
 
Isharyanti-2025-Cross Language Communication in Indonesian Language
Neny Isharyanti
 
Generative AI: it's STILL not a robot (CIJ Summer 2025)
Paul Bradshaw
 
Biological Bilingual Glossary Hindi and English Medium
World of Wisdom
 
ARAL-Orientation_Morning-Session_Day-11.pdf
JoelVilloso1
 
ARAL_Orientation_Day-2-Sessions_ARAL-Readung ARAL-Mathematics ARAL-Sciencev2.pdf
JoelVilloso1
 
LAW OF CONTRACT ( 5 YEAR LLB & UNITARY LLB)- MODULE-3 - LEARN THROUGH PICTURE
APARNA T SHAIL KUMAR
 
A PPT on Alfred Lord Tennyson's Ulysses.
Beena E S
 
Lesson 2 - WATER,pH, BUFFERS, AND ACID-BASE.pdf
marvinnbustamante1
 
The History of Phone Numbers in Stoke Newington by Billy Thomas
History of Stoke Newington
 
The Constitution Review Committee (CRC) has released an updated schedule for ...
nservice241
 
Dimensions of Societal Planning in Commonism
StefanMz
 
Exploring the Different Types of Experimental Research
Thelma Villaflores
 

Merge sort code in C explained

  • 2. MERGE SORT – understanding code#include<stdio.h>intmergesort(int*,int,int);void merge(int*,int,int,int);int main(){int a[5]={3,5,2,6,8};inti;mergesort(a,0,4); for(i=0;i<5;i++)printf("\n%d",a[i]); return 0;}3 5 2 6 8
  • 3. intmergesort(inta[], int low, int high){ 0,4int mid; if(low<high){ mid=(low+high)/2;(2)mergesort(a,low,mid);(a,0,2)mergesort(a,mid+1,high);merge(a,low,high,mid);}return(0);}intmergesort(int a[], int low, int high){ 0,0int mid;if(low<high)(0<0-false){mid=(low+high)/2;mergesort(a,low,mid);mergesort(a,mid+1,high);merge(a,low,high,mid);}return(0);(now return will give control toNearest function call)}intmergesort(int a[], int low, int high){ 0,2int mid;if(low<high){mid=(low+high)/2;(1)mergesort(a,low,mid);(0,1)mergesort(a,mid+1,high);merge(a,low,high,mid);}return(0);}intmergesort(int a[], int low, int high){ 0,1int mid;if(low<high){mid=(low+high)/2;(0)mergesort(a,low,mid);(0,0)mergesort(a,mid+1,high);merge(a,low,high,mid);}return(0);}
  • 4. intmergesort(inta[], int low, int high){ 0,1int mid;if(low<high){ mid=(low+high)/2;(0)mergesort(a,low,mid);mergesort(a,mid+1,high);merge(a,low,high,mid);} 0,1,0return(0);}intmergesort(int a[], int low, int high){ 0,0int mid;if(low<high)(0<0-false){mid=(low+high)/2;mergesort(a,low,mid);mergesort(a,mid+1,high);merge(a,low,high,mid);}return(0);}intmergesort(int a[], int low, int high){ (1,1)int mid;if(low<high)(1<1-false){mid=(low+high)/2;mergesort(a,low,mid);mergesort(a,mid+1,high);merge(a,low,high,mid);}return(0);}intmergesort(int a[], int low, int high){ 0,1int mid;if(low<high){mid=(low+high)/2;(0)mergesort(a,low,mid);(0,0)mergesort(a,mid+1,high);(0+1,1)merge(a,low,high,mid);}return(0);}
  • 5. Until now array has been divided into 1 element each. Now array is merged and sorted in the merge function
  • 6. void merge(int a[], int low, int high, int mid){ 0,1,0int b[20],l1,r1,i;l1=low;0 r1=mid+1;1 l1 r1 ii=low;0 while((l1<=mid) && (r1<=high)){ 0<=0 1<=1 if(a[l1]<a[r1]) { 3<5 b[i]=a[l1];b[0]=3 l1=l1+1;l1=1i=i+1;i1=1 } else { b[i]=a[r1]; r1=r1+1;i=i+1; }}while(l1<=mid)1<=0{ b[i]=a[l1]; l1=l1+1;i=i+1;}while(r1<=high)1<=1{ b[i]=a[r1];b[1]=5 r1=r1+1;r1=2i=i+1;i=2}For(j=low;j<i;j++) a[j]=b[j];}3 3 5 2 6 8 1.3 5 3 5 2 6 8 i3 5
  • 7. |----------------------;|----------------------;while(r1<=high){ b[i]=a[r1]; r1=r1+1;i=i+1;}It will transfer the current values of b array to a arrayfor(j=low;j<i ;j++){ a[j]=b[j];}}
  • 8. IN next recursive pass or call to merge 3 5 3 5 2 6 8 void merge(int a[], int low, int high, int mid){ 0,2,1int b[20],l1,r1,i;l1=low;0r1=mid+1;2 l1 r1 i=low;0while((l1<=mid) && (r1<=high)){ 0<=1 2<=2 if(a[l1]<a[r1]) { 3<2 b[i]=a[l1]; l1=l1+1; l1i=i+1; } else { b[i]=a[r1];b[0]=2 r1=r1+1;r1=3i=i+1;i=1 }}while(l1<=mid)0<=1{ b[i]=a[l1];b1=3 l1=l1+1;l1=1 i=i+1;i=2 }while(r1<=high)3<=2{ b[i]=a[r1]; r1=r1+1;i=i+1;}for(j=low;j<i;j++) a[j]=b[j];}3 5 3 5 2 6 8 3 5 2 6 8 2 5 r13 5 2 6 8 2 3 3 5 2 6 8 2 3 5
  • 9. IN next recursive pass or call to merge 2 3 5 2 3 5 6 8 void merge(int a[], int low, int high, int mid){ a,3,4,3int b[20],l1,r1,i;l1=low;l1=3r1=mid+1;r1=4i=low;i=3while((l1<=mid) && (r1<=high)){ 3<=3 4<=4 if(a[l1]<a[r1]) { b[i]=a[l1];b[3]=6 l1=l1+1;l1=4i=i+1;i1=4 } else { b[i]=a[r1]; r1=r1+1;i=i+1; }}while(l1<=mid){ b[i]=a[l1]; l1=l1+1;i=i+1;}while(r1<=high)4<=4{ b[i]=a[r1];b[4]=8 r1=r1+1;r1=5i=i+1;i=5}For(j=low;j<i;j++) a[j]=b[j];}2 3 5 6 8 2 3 5 2 3 5 6 2 3 5 6 8 2 3 5 6 8
  • 10. IN LAST recursive pass or call to merge 2 3 5 6 8 2 3 5 6 8 void merge(int a[], int low, int high, int mid){ 0,4,2int b[20],l1,r1,i;l1=low;l1=0r1=mid+1;r1=3i=low;i=0while((l1<=mid) && (r1<=high)){ 0<=2 3<=4 if(a[l1]<a[r1]) { 2<6 b[i]=a[l1];b[0]=2 l1=l1+1;l1=1i=i+1;i=1 } else { b[i]=a[r1]; r1=r1+1;i=i+1; }}while(l1<=mid){ b[i]=a[l1]; l1=l1+1;i=i+1;}while(r1<=high)3<=4{ b[i]=a[r1];b[3]=6 r1=r1+1;r1=4i=i+1;i=4}For(j=low;j<i;j++ a[j]=b[j];}2 3 5 6 8 2 3 5 6 8 2 3 5 6 8 2 3 5 6 8 2 3 5 6 8 2 3 5 6 8 2 3 5 6 8 2 3 5 6 8 2 3 5 6 8 2 3 5 6 8