File tree Expand file tree Collapse file tree 2 files changed +94
-0
lines changed Expand file tree Collapse file tree 2 files changed +94
-0
lines changed Original file line number Diff line number Diff line change 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+ }
Original file line number Diff line number Diff line change 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+ }
You can’t perform that action at this time.
0 commit comments