¿Existen funciones incorporadas en el lenguaje de programación C para ordenar matrices? ¿O tengo que escribir mis propias funciones?Funciones incorporadas para ordenar matrices en C
Respuesta
Salida qsort
Sintaxis:
#include <stdlib.h>
void qsort(void *buf, size_t num, size_t size, int (*compare)(const void *, const void *));
Descripción:
Los qsort()
tipo de función buf (que contiene elementos num, cada uno del tamaño de tamaño) utilizando ordenación rápida. La función de comparación se usa para comparar los artículos en buf. compare debería ser negativo si el primer argumento es menor que el segundo, cero si son iguales y positivo si el primer argumento es mayor que el segundo. qsort() ordena buf en orden ascendente.
Muchas gracias: D También gracias a los demás que respondieron: D – CluelessNoob
NOTA: qsort() no es necesariamente quicksort. (a menudo lo es, sin embargo) – wildplasser
Sí: qsort
. Está en stdlib.h
.
Puede usar qsort
en stdlib.h
. Es un algoritmo de ordenación rápida, que tiene una complejidad de tiempo promedio de O (nlogn) y la complejidad del caso más desfavorable de O (n). El C99 standard e incluso el más reciente C11 Standard no exige la implementación o la complejidad de tiempo de la función. Sin embargo, es muy probable que la implementación común utilice algoritmos que proporcionen una complejidad de tiempo promedio de caso O (nlogn) (que es óptima para la clasificación por comparación).
Puede usar esto para ordenar cualquier tipo de matriz (incluso struct
), pero debe proporcionar una función de comparación para comparar los 2 elementos de la matriz.
NOTA: qsort() no es necesariamente quicksort. (a menudo lo es, sin embargo) – wildplasser
@wildplasser: Editado. – nhahtdh
Puede vincular al [Estándar C11] (http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf) hoy en día :) – pmg
qsort es bien conocida. También hay otros como heapsort, mergesort, etc. Consulte el enlace para obtener más detalles.
Tenga en cuenta que todas ellas toman como funciones de comparación las funciones de comparación, lo que las hace fácilmente utilizables con tipos de datos nativos y creados por el usuario.
Tenía curiosidad en qué biblioteca estándar existe ' mergesort' y 'heapsort' ... resulta que están en la libc de FreeBSD. Guay. +1 (Nota: no parecen existir en glibc.) –
Son funciones C no estándar. – nhahtdh
sintaxis simple:
int function (const void * a, const void * b) {return (*(int*)a-(int*)b);}
`qsort(arr_name , sizeofarray , sizeof(int), function);
- 1. Código fuente de PHP para funciones incorporadas
- 2. ¿Encontrar el código fuente para las funciones incorporadas de Python?
- 3. ¿En qué idioma están escritas las funciones de PHP incorporadas?
- 4. clase Java comparador para ordenar matrices
- 5. PHP ordenar matrices multidimensionales
- 6. Ordenar una matriz de matrices de diferentes índices en C
- 7. Ordenar matrices PHP basadas en valores duplicados
- 8. ¿Cómo ordenar matrices de estructuras en MATLAB?
- 9. Python ordenar matrices paralelas en su lugar?
- 10. Cómo ordenar matrices múltiples en PHP
- 11. Accediendo a las funciones hash de cadena incorporadas de Lua
- 12. operador + para matrices en C++
- 13. Pasar matrices multidimensionales como argumentos de funciones en C
- 14. ¿Por qué a Pylint no le gustan las funciones incorporadas?
- 15. ¿Cómo usar las funciones de ayuda incorporadas de CoffeeScript?
- 16. Combinar dos matrices en una matriz en python y ordenar
- 17. ¿Es posible ordenar matrices utilizando el preprocesador?
- 18. matrices y matrices a funciones como punteros y punteros Pasando a los punteros en C
- 19. Diseño de API para funciones que actúan en matrices
- 20. funciones para obtener/establecer valores en matrices multidimensionales dinámicamente
- 21. ¿Puedo almacenar funciones de JavaScript en matrices?
- 22. Rails Kaminari - ¿Cómo ordenar/paginar matrices?
- 23. ¿Cómo puedo "ordenar zip" matrices numpy paralelas?
- 24. Ordenar dos matrices de la misma manera
- 25. Ordenar por proxy (o: ordenar un contenedor por el contenido de otro) en C++
- 26. ¿GCC crea typedefs para matrices pasadas a funciones?
- 27. Matrices en Objective-C
- 28. Usando funciones como array_walk (y funciones similares) para modificar matrices en PHP> = 5.3
- 29. funciones anónimas falsas en C
- 30. ¿Java tiene bibliotecas incorporadas para audio _synthesis_?
'' qsort' en stdlib.h' – nhahtdh
@nhahtdh que no lo haga como respuesta? – triclosan
@triclosan: Escribir un comentario de liner requiere menos esfuerzo que escribir una respuesta completa. – nhahtdh