Skip to content
Snippets Groups Projects
triInsertion.c 790 B
Newer Older
Mickael Da Silva's avatar
Mickael Da Silva committed
#include "triInsertion.h"

void triInsertion(long* A, size_t n){
    long cle = 0;
    for(size_t i = 1; i<n; i++){
        cle=A[i];
        size_t j = i - 1;
chafiol's avatar
chafiol committed
        while (j+1 > 0 && A[j] > cle ){
Mickael Da Silva's avatar
Mickael Da Silva committed
            A[j+1] = A[j];
            j = j-1;
        }
        A[j+1] = cle;
    }
}
Mickael Da Silva's avatar
Mickael Da Silva committed

Mickael Da Silva's avatar
Mickael Da Silva committed
// --------------------------------------------------------

void triInsertionVerbose(long* A, size_t n, struct data* d){
    long cle = 0; 
    d->write++;
    for(size_t i = 1; i<n; i++){
        cle=A[i];
        d->write++;
        size_t j = i - 1;
        d->write++;
chafiol's avatar
chafiol committed
        while (j+1 > 0 && A[j] > cle ){
Mickael Da Silva's avatar
Mickael Da Silva committed
            d->comparison+=2;
            A[j+1] = A[j];
            d->write++;
            j = j-1;
            d->write++;
        }
        A[j+1] = cle;
        d->write++;
    }
}