Ver Mensaje Individual
  #17 (permalink)  
Antiguo 08/07/2016, 18:46
enrieto
 
Fecha de Ingreso: abril-2016
Mensajes: 31
Antigüedad: 8 años, 1 mes
Puntos: 5
Respuesta: ¿Se puede optimizar el siguiente codigo?

qsort y bsearch
Cita:
¿que tan eficientes son?
Creo que es el patrón más eficiente incluido en la biblioteca estándar del C. bsearch implementa el concepto de búsqueda binaria sobre una secuencia ordenada. Información razonable acá:
https://en.wikipedia.org/wiki/Binary_search_algorithm

Cita:
Me parece que la mejora que ha tenido en tiempo es brutal
Si usaras una búsqueda binaria tendrías que llegar a los milisegundos.

Cita:
el único lenguaje capaz de plantar cara a C y ganarle es ASM ¿es cierto eso?
No, no lo creo; el C++ es casi siempre más eficiente que el C, y en el peor de los casos es igual. Por ejemplo, el std::sort del C++ es entre 2 o 3 veces más rápido que qsort.

Ah, me olvidaba
Cita:
bsearch dice que si hay elementos duplicados el resultado es impredecible
Código C:
Ver original
  1. void *bsearch(const void *key, const void *base, size_t nel,
  2.        size_t width, int (*compar)(const void *, const void *));
bseach devuelve un puntero al valor en "base" que se corresponde con la "key"; si "base" tuviera valores repetidos, bsearch va a devolver un puntero a uno de esos, que puede ser el primero en la secuencia o no, no sabremos cuál.

Última edición por enrieto; 08/07/2016 a las 19:18