Bifalgorithm post · Computer science one · Comparator Functions
What is a comparator function and how does it determine element order?
What is a comparator function and how does it determine element order? (Computer science one · Comparator Functions) — "A generic Quick Sort algorithm specifie…
Ideas in this flowchart
- El Quick Sort genérico necesita una función comparadora para ordenar elementos de distintos tipos.
- Quick Sort especifica cómo ordenar, pero no cómo se ordenan entre sí los elementos.
- Debe determinar si dos elementos están ordenados, desordenados o son equivalentes para elegir sus particiones.
- Los elementos pueden ser números, cadenas u objetos definidos por el usuario.
- En C, la función comparadora determina el orden relativo de dos elementos.
- Su firma es: int cmp(const void *a, const void *b);
- Recibe dos punteros void * genéricos que apuntan a los elementos comparados.
- La palabra clave const indica que los elementos no serán modificados.
- Devuelve un entero que representa el orden relativo de los elementos.
- Un valor menor que cero indica que a va antes que b.
- Un valor igual a cero indica que a y b son equivalentes.
- Un valor mayor que cero indica que a va después que b.
- No se garantiza la magnitud del resultado: no tiene que ser −1 o +1.
- strcmp() ofrece un contrato similar para comparar cadenas según su orden lexicográfico.
- Strictamente, strcmp() no es una función comparadora genérica porque recibe const char *, no const void *.
- Los punteros void * permiten generalizar la comparación para funciones genéricas de búsqueda y ordenamiento.
- El lenguaje C compara tipos primitivos como int y double mediante operadores incorporados.