Skip to content

Commit 5e5edad

Browse files
authored
Merge pull request #4 from divya144/master
Added insertion sort and merge sort in c++. Solves Issue #1
2 parents 8622a08 + 168253e commit 5e5edad

File tree

2 files changed

+94
-0
lines changed

2 files changed

+94
-0
lines changed
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
#include<bits/stdc++.h>
2+
using namespace std;
3+
void insertion_sort(int n,int A[])
4+
{
5+
for(int i=1;i<n;i++)
6+
{
7+
int key=A[i];
8+
int j=i-1;
9+
while(j>=0&&A[j]>key)
10+
{
11+
A[j+1]=A[j];
12+
j=j-1;
13+
A[j+1]=key;
14+
}
15+
}
16+
}
17+
int main()
18+
{
19+
int n;
20+
cin>>n;
21+
int arr[n];
22+
for(int i=0;i<n;i++)
23+
cin>>arr[i];
24+
insertion_sort(n,arr);
25+
cout<<"Sorted array:"<<endl;
26+
for(int i=0;i<n;i++)
27+
cout<<arr[i]<<endl;
28+
}

Sorting/mergeSort/merge_sort.cpp

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
#include<bits/stdc++.h>
2+
using namespace std;
3+
void merge(int A[],int l,int mid,int h)
4+
{
5+
int len1=mid-l+1;
6+
int len2=h-mid;
7+
int temp1[len1],temp2[len2];
8+
for(int i=0;i<len1;i++)
9+
{
10+
temp1[i]=A[l+i];
11+
}
12+
for(int j=0;j<len2;j++)
13+
{
14+
temp2[j]=A[mid+1+j];
15+
}
16+
int p = 0;
17+
int q = 0;
18+
int k = l;
19+
while (p < len1 && q < len2)
20+
{
21+
if (temp1[p] <= temp2[p])
22+
{
23+
A[k] = temp1[p];
24+
p++;
25+
}
26+
else
27+
{
28+
A[k] = temp2[q];
29+
q++;
30+
}
31+
k++;
32+
}
33+
while (p < len1)
34+
{
35+
A[k] = temp1[p];
36+
p++;
37+
k++;
38+
}
39+
while (q < len2)
40+
{
41+
A[k] = temp2[q];
42+
q++;
43+
k++;
44+
}
45+
}
46+
47+
void mergeSort(int A[], int low, int high){
48+
if(low<high){
49+
int m=low+(high-low)/2;
50+
mergeSort(A,low,m);
51+
mergeSort(A,m+1,high);
52+
merge(A,low,m,high);
53+
}
54+
}
55+
int main()
56+
{
57+
int n;
58+
cin>>n;
59+
int arr[n];
60+
for(int i=0;i<n;i++)
61+
cin>>arr[i];
62+
mergeSort(arr,0,n-1);
63+
cout<<"Sorted array:"<<endl;
64+
for(int i=0;i<n;i++)
65+
cout<<arr[i]<<endl;
66+
}

0 commit comments

Comments
 (0)