Skip to content
Snippets Groups Projects
Commit eda986e8 authored by chafiol's avatar chafiol
Browse files

triFusion finish

parent 05cf93dd
Branches
No related merge requests found
File added
#include "algos.h" #include "algos.h"
#include <string.h> #include <string.h>
void triInsertion(int* A, int n){ void triInsertion(long* A, size_t n){
int cle = 0; long cle = 0;
for(int i = 1; i<n; i++){ for(size_t i = 1; i<n; i++){
cle=A[i]; cle=A[i];
int j = i - 1; size_t j = i - 1;
while (j >= 0 && A[j] > cle){ while (j >= 0 && A[j] > cle){
A[j+1] = A[j]; A[j+1] = A[j];
j = j-1; j = j-1;
...@@ -15,24 +15,23 @@ void triInsertion(int* A, int n){ ...@@ -15,24 +15,23 @@ void triInsertion(int* A, int n){
} }
void sousTriFusion(int * A, int p, int r){ void sousTriFusion(long * A, size_t p, size_t r){
if(p<r-1){ if(p<r-1){
int q = (int)(p+r/2); size_t q = (size_t)(p+r/2);
sousTriFusion(A, p, q); sousTriFusion(A, p, q);
sousTriFusion(A, q, r); sousTriFusion(A, q, r);
fusion(A, p, q, r); fusion(A, p, q, r);
} }
} }
void fusion(int * A, int p, int q, int r){ void fusion(long * A, size_t p, size_t q, size_t r){
int* Ad, Ag; long* Ad;
memset(Ad, 0, p); long* Ag;
memset(Ag, 0, q); size_t n1 = q-p;
int n1 = q-p; size_t n2 = r-q;
int n2 = r-q; size_t indg = 0;
int indg = 0; size_t indd = 0;
int indd = 0; size_t i = p;
int i = p;
while (i < r){ while (i < r){
if(indg == n1){ if(indg == n1){
A[i] = Ad[indd]; A[i] = Ad[indd];
...@@ -52,4 +51,8 @@ void fusion(int * A, int p, int q, int r){ ...@@ -52,4 +51,8 @@ void fusion(int * A, int p, int q, int r){
} }
i++; i++;
} }
}
void triFusion(long * A, size_t n){
sousTriFusion(A, 0, n);
} }
\ No newline at end of file
#include <stddef.h>
void triInsertion(long* A, size_t n);
void sousTriFusion(long * A, size_t p, size_t r);
void fusion(long * A, size_t p, size_t q, size_t r);
void triFusion(long * A, size_t n);
\ No newline at end of file
File added
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
#include <stdio.h> #include <stdio.h>
#include <string.h> #include <string.h>
int main(int argc, char **argv){ int main(int argc, char **argv){
if()
return 0; return 0;
} }
\ No newline at end of file
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment