FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
competitive-programming/Sorting/MergeSort.cpp at master · kothariji/competitive-programming · GitHub
kothariji
/
competitive-programming
Public
Notifications
You must be signed in to change notification settings
Fork
500
Star
704
Code
Issues
1
Pull requests
2
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Issues
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
competitive-programming
/
Sorting
/
MergeSort.cpp
Copy path
More file actions
More file actions
Latest commit
History
History
History
92 lines (78 loc) · 1.43 KB
Breadcrumbs
competitive-programming
/
Sorting
/
MergeSort.cpp
Copy path
File metadata and controls
92 lines (78 loc) · 1.43 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#
include
<
iostream
>
using
namespace
std
;
//
A function to merge the two half into a sorted data.
void
Merge
(
int
*a,
int
low,
int
high,
int
mid)
{
//
We have low to mid and mid+1 to high already sorted.
int
i, j, k, temp[high-low+
1
];
i = low;
k =
0
;
j = mid +
1
;
//
Merge the two parts into temp[].
while
(i <= mid && j <= high)
{
if
(a[i] < a[j])
{
temp[k] = a[i];
k++;
i++;
}
else
{
temp[k] = a[j];
k++;
j++;
}
}
//
Insert all the remaining values from i to mid into temp[].
while
(i <= mid)
{
temp[k] = a[i];
k++;
i++;
}
//
Insert all the remaining values from j to high into temp[].
while
(j <= high)
{
temp[k] = a[j];
k++;
j++;
}
//
Assign sorted data stored in temp[] to a[].
for
(i = low; i <= high; i++)
{
a[i] = temp[i-low];
}
}
//
A function to split array into two parts.
void
MergeSort
(
int
*a,
int
low,
int
high)
{
int
mid;
if
(low < high)
{
mid=(low+high)/
2
;
//
Split the data into two half.
MergeSort
(a, low, mid);
MergeSort
(a, mid+
1
, high);
//
Merge them to get sorted output.
Merge
(a, low, high, mid);
}
}
int
main
()
{
int
n, i;
cout<<
"
\n
Enter the number of data element to be sorted:
"
;
cin>>n;
int
arr[n];
for
(i =
0
; i < n; i++)
{
cout<<
"
Enter element
"
<<i+
1
<<
"
:
"
;
cin>>arr[i];
}
MergeSort
(arr,
0
, n-
1
);
//
Printing the sorted data.
cout<<
"
\n
Sorted Data
"
;
for
(i =
0
; i < n; i++)
cout<<
"
->
"
<<arr[i];
return
0
;
}
Back
|
FazBrowse Home
|
New Git URL