Skip to content
Snippets Groups Projects
Commit 2158afb2 authored by stephane.chappuis1's avatar stephane.chappuis1
Browse files

ajout merge sort

parent ce19254e
No related branches found
No related tags found
No related merge requests found
#include "./MergeSort.h"
void merge(int tab[], int l, int m, int r)
{
int i, j, k;
int n1 = m - l + 1;
int n2 = r - m;
int L[n1], R[n2];
for (i = 0; i < n1; i++)
L[i] = tab[l + i];
for (j = 0; j < n2; j++)
R[j] = tab[m + 1 + j];
i = 0;
j = 0;
k = l;
while (i < n1 && j < n2)
{
if (L[i] <= R[j])
{
tab[k] = L[i];
i++;
}
else
{
tab[k] = R[j];
j++;
}
k++;
}
while (i < n1)
{
tab[k] = L[i];
i++;
k++;
}
while (j < n2)
{
tab[k] = R[j];
j++;
k++;
}
}
void merge_sort(int size, int tab[size])
{
int l = 0;
int r = size - 1;
if (l < r)
{
int m = l + (r - l) / 2;
merge_sort(m - l + 1, tab);
merge_sort(r - m, tab);
merge(tab, l, m, r);
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment