#include<stdio.h>
int main(void) {
// El arreglo
int arreglo[] = {28, 11, 96, -5, 21, 18, 12, 22, 30, 97, -1, -40, -500};
/*Calcular la longitud, puede ser definida por ti o calculada:*/
int longitud = sizeof arreglo / sizeof arreglo[0];
/*Imprimirlo antes de ordenarlo*/
printf("Imprimiendo arreglo antes de ordenar...\n");
for (int x = 0; x < longitud; x++) {
printf("%d ", arreglo[x]);
}
// Un salto de línea
printf("\n");
/*Invocar a quicksort indicando todo el arreglo, desde 0 hasta el índice final */
quicksort(arreglo, 0, longitud - 1);
/*Imprimirlo después de ordenarlo*/
printf("Imprimiendo arreglo despues de ordenar...\n");
for (int x = 0; x < longitud; x++)
printf("%d ", arreglo[x]);
return 0;
}
Me marca error en quicksort, tengo la idea pero no se si me falte otra libreria o asi algo por el estilo
MOD: El código debe estar publicado entre etiquetas de Código GeSHi
Hola, aquí está el error:
printf("%d ", arreglo
);
Ese paréntesis no puede ir abajo así, dará error.
Saludos
quicksort(arreglo, 0, longitud - 1);
Este seria mi error mas bien
Te falta el codigo ;D Si uso Google para buscar el siguiente comentario lo encuentro completo: "/*Invocar a quicksort indicando todo el arreglo, desde 0 hasta el índice final */".
Cita de: hzre en 23 Noviembre 2020, 18:44 PM
Me marca error en quicksort, tengo la idea pero no se si me falte otra libreria o asi algo por el estilo
Efectivamente, como dice
Eternal Idol, lo que te falta es el código; es decir, la función. La función:
quicksort(int[], int, int);
no existe por lo que tienes que implementarla tú.
Eso es lo que pasa cuando se copia el código tal cual de Github.
PD: Espero por tu propio bien que ese programa no sea una tarea que tengas que entregar pues ya ves lo fácil que ha sido encontrar el código original.
Aquí está la función que falta (quicksort):
void quicksort(int arr[], int left, int right) {
int i = left, j = right;
int tmp;
int pivot = arr[(left + right) / 2];
/* partition */
while (i <= j) {
while (arr[i] < pivot)
i++;
while (arr[j] > pivot)
j--;
if (i <= j) {
tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
i++;
j--;
}
};
/* recursion */
if (left < j)
quickSort(arr, left, j);
if (i < right)
quickSort(arr, i, right);
}
Saludos
Cita de: [D]aniel en 23 Noviembre 2020, 23:54 PM
Aquí está la función que falta (quicksort):
Por algo no la pusimos antes :rolleyes: