Copiez le code comme suit :
//Tri par insertion directe
void DirectInsertionSort(int* arr, int nLen)
{
int je, j;
pour (i=1; i<nLen; i++)
{
int temp = arr[je];
pour (j=i-1; j>=0; j--)
{
si (temp < arr[j])
arr[j+1] = arr[j];
autre
casser;
}
si (j+1 != je)
arr[j+1] = temp; //Notez qu'il s'agit de j+1
}
}
//Insertion triée par moitié
void BinaryInsertionSort(int* arr, int nLen)
{
int je, j;
int bas, moyen, haut ;
pour (i=1; i<nLen; i++)
{
int temp = arr[je];
if (temp < arr[i-1])//Ce jugement n'est pas nécessaire
{
faible = 0 ;
élevé = i-1 ;
while (low <= high) //erreur : while( low < high) Notez qu'un signe égal est nécessaire ici
{
milieu = (bas + haut)/2 ;
si (temp <arr[mid])
élevé = moyen - 1 ;
autre
bas = milieu + 1 ;
}
//Après avoir recherché la position d'insertion via la recherche à mi-chemin ci-dessus, la position d'insertion est basse ou haute+1, et basse est égale à haute+1.
//pour (j=i-1; j>=haut+1; j--)
//{
// arr[j+1] = arr[j];
//}
//arr[haut+1] = temp;
pour (j=i-1; j>=faible; j--)
{
arr[j+1] = arr[j];
}
arr[faible] = temp;
}
}
}