Skip to content

Commit fa44cc9

Browse files
Merge pull request #747 from PedroNC18/patch-7
Create Merge_sort.cpp
2 parents 3289efc + 4436995 commit fa44cc9

File tree

1 file changed

+67
-0
lines changed

1 file changed

+67
-0
lines changed

Sorting/Merge Sort/C++/Merge_sort.cpp

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
#include<iostream>
2+
using namespace std;
3+
4+
void merge(int A[], int inicio, int meio, int fim){
5+
int i=0, j=0, k=0;
6+
int temp[100000], p1, p2, tam;
7+
int fim1=0, fim2=0;
8+
tam = fim-inicio+1;
9+
p1 = inicio;
10+
p2=meio+1;
11+
for(i=0;i<tam;i++){
12+
if(!fim1 && !fim2){
13+
if(A[p1]<A[p2]){
14+
temp[i] = A[p1++];
15+
}
16+
else{
17+
temp[i] = A[p2++];
18+
}
19+
if(p1>meio){
20+
fim1 = 1;
21+
}
22+
if(p2>fim){
23+
fim2 = 1;
24+
}
25+
}
26+
else{
27+
if(!fim1){
28+
temp[i] = A[p1++];
29+
}
30+
else{
31+
temp[i] = A[p2++];
32+
}
33+
}
34+
}
35+
for(j=0,k=inicio;j<tam;j++,k++){
36+
A[k] = temp[j];
37+
}
38+
}
39+
40+
void merge_sort(int A[], int inicio, int fim){
41+
int meio;
42+
if(inicio<fim){
43+
meio = (inicio+fim)/2;
44+
merge_sort(A,inicio,meio);
45+
merge_sort(A,meio+1,fim);
46+
merge(A,inicio,meio,fim);
47+
}
48+
}
49+
50+
int main() {
51+
ios::sync_with_stdio(0);
52+
cin.tie(0);
53+
54+
int vet[100000], vetn=0;
55+
cin >> vetn;
56+
int i;
57+
for(i=0;i<vetn;i++){
58+
cin >> vet[i];
59+
}
60+
61+
//---(COLOCAR UMA FUNCAO SORT NESSE LUGAR)----//
62+
63+
for(i=0;i<vetn;i++){
64+
cout << vet[i] << " ";
65+
}
66+
return 0;
67+
}

0 commit comments

Comments
 (0)