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