summaryrefslogtreecommitdiff
path: root/I_anno/Programmazione_2/mergesort.cc
diff options
context:
space:
mode:
authorSanto Cariotti <dcariotti24@gmail.com>2020-05-10 18:57:13 +0200
committerSanto Cariotti <dcariotti24@gmail.com>2020-05-10 18:57:13 +0200
commit0d2341999a9c844954aca9ed4cc739b8fde34584 (patch)
tree9575ea700afe2c1bc2d2b8a2145bde52b8ef386b /I_anno/Programmazione_2/mergesort.cc
parent3d856cead127c2a0c30814cc40334beb102cfb30 (diff)
chore: move algorithms file into self directory
Diffstat (limited to 'I_anno/Programmazione_2/mergesort.cc')
-rw-r--r--I_anno/Programmazione_2/mergesort.cc52
1 files changed, 0 insertions, 52 deletions
diff --git a/I_anno/Programmazione_2/mergesort.cc b/I_anno/Programmazione_2/mergesort.cc
deleted file mode 100644
index 21dc8af..0000000
--- a/I_anno/Programmazione_2/mergesort.cc
+++ /dev/null
@@ -1,52 +0,0 @@
-#include<iostream>
-
-using namespace std;
-
-void merge(int A[], int l, int q, int r) {
- int i = l;
- int j = q+1;
- int k = l;
- int B[r];
-
- while((i <= q) && (j <= r)) {
- if(A[i] <= A[j])
- B[k] = A[i++];
- else
- B[k] = A[j++];
-
- k++;
- }
-
- while(i <= q)
- B[k++] = A[i++];
-
- while(j <= r)
- B[k++] = A[j++];
-
- for(k = l; k <= r; ++k)
- A[k] = B[k];
-}
-
-void mergesort(int A[], int l, int r) {
- if(l < r) {
- int q = (l+r)/2;
- mergesort(A, l, q);
- mergesort(A, q+1, r);
- merge(A, l, q, r);
- }
-}
-
-
-int main() {
- int a[] = {2, 4, 72, 100, 2, 12, 0, 0, 1, 23, 45, 12, 120, 3, 6};
- for(int i = 0; i < 15; ++i) {
- cout << a[i] << ' ';
- }
- cout << endl;
- mergesort(a, 0, 14);
- for(int i = 0; i < 15; ++i) {
- cout << a[i] << ' ';
- }
-
- return 0;
-}