#include "sort.h"
#include "system.h"
#include "stdio.h"

//---- insertion sort : non adapté pour tableaux de grande taille (> 100) --
void sort_insertion(unsigned int *base, unsigned int n) 
{
    /* Spécifications externes : Tri du tableau base par insertion séquentielle */
    int i,p,j;
    int x;

    for (i = 1; i < n; i++) 
    {

#if VERBOSE_SORT
        printf("-"); // added for debug
#endif
        /* stockage de la valeur en i */
        x = base[i]; 
 
        /* recherche du plus petit indice p inférieur Ã  i tel que base[p] >= base[i] */
        for(p = 0; base[p] < x; p++);
        /* p pointe une valeur de base supérieure Ã  celle en i */ 
 
        /* décalage avant des valeurs de base entre p et i */         
        for (j = i-1; j >= p; j--) {
            base[j+1] = base[j]; 
        }   
 
        base[p] = x; /* insertion de la valeur stockée Ã  la place vacante */

#if VERBOSE_SORT
        printf("+"); // added for debug
#endif
    }
#if VERBOSE_SORT
    printf("\n");
#endif
}
