Copie el código de código de la siguiente manera:
// Ordenación por inserción directa
anular DirectInsertionSort(int* arr, int nLen)
{
int i, j;
para (i=1; i<nLen; i++)
{
int temp = arreglo[i];
para (j=i-1; j>=0; j--)
{
si (temperatura <arr[j])
arreglo[j+1] = arreglo[j];
demás
romper;
}
si (j+1 != i)
arr[j+1] = temp; //Tenga en cuenta que esto es j+1
}
}
//Inserción ordenar por la mitad
void BinaryInsertionSort(int* arr, int nLen)
{
int i, j;
int bajo, medio, alto;
para (i=1; i<nLen; i++)
{
int temp = arreglo[i];
if (temp <arr[i-1])//Este juicio no es necesario
{
bajo = 0;
alto = i-1;
while (bajo <= alto) //error: while( bajo < alto) Tenga en cuenta que aquí se necesita un signo igual
{
medio = (bajo+alto)/2;
si (temperatura <arr[mediados])
alto = medio - 1;
demás
bajo = medio + 1;
}
// Después de buscar la posición de inserción a través de la búsqueda intermedia anterior, la posición de inserción es baja o alta +1, y baja es igual a alta+1.
//para (j=i-1; j>=alto+1; j--)
//{
// arreglo[j+1] = arreglo[j];
//}
//arr[alto+1] = temp;
para (j=i-1; j>=bajo; j--)
{
arreglo[j+1] = arreglo[j];
}
arr[baja] = temperatura;
}
}
}