es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Ordenamiento por selección utilizando recursión

void swap(int a[], int x, int y)
{

int temp = a[x];
a[x] = a[y];
a[y] = temp;

}
void sort(int arr[], int x)
{
static int count = 0;
if (x == 1)
{
return;
}
int min = 100; // valor aleatorio
int index;
for (int i = 0; i < x; i++)
{
if (arr[i] < min)
{
min = arr[i];
index = i;
}
}
swap(arr, count, index);
count++;
sort(arr + 1, x – 1);
}
int main()
{
int x;
cin >> x;
int A[x];
for (int i = 0; i < x; i++)
{
cin >> A[i];
}
sort(A, x);
for (int i = 0; i < x; i++)
{
cout << A[i] << ” “;
}
cout << endl;
return 0;
}

Este código es de selección sort usando recursión. Está imprimiendo valores basura. ¿Cuál es el error en esto? No estoy seguro, pero supongo que es debido al uso de la variable estática en la función sort(). Está imprimiendo valores basura.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Podría haber varios errores en este código que podrían dar lugar a la impresión de valores basura. Uno de ellos podría ser el uso de una variable estática en la función de ordenamiento, ya que conserva su valor en las llamadas a la función.

    Otro posible error podría ser el uso de la función swap. Los índices pasados como argumentos a la función swap no se están actualizando correctamente, lo que podría llevar a un intercambio incorrecto.

    Además, no está claro cómo se están inicializando los valores de entrada. El arreglo A se está inicializando sin ningún valor predeterminado, lo que también podría dar lugar a la impresión de valores basura.

    Sin más información sobre los valores de salida y entrada, sería difícil determinar la causa raíz de los valores basura.

Comments are closed.