Estos ejercicios se centran en la implementación de algoritmos fundamentales de
búsqueda y ordenamiento. Comprender su funcionamiento interno y sus diferencias
en eficiencia es clave para escribir código performante. Para cada algoritmo de
ordenamiento, se recomienda implementar una función
void ordenar(int arreglo[], size_t n) que modifique el arreglo in-place.
Implementar una función que busque un elemento en un arreglo recorriéndolo
secuencialmente desde el primer hasta el último elemento. Es el método de
búsqueda más simple y no requiere que el arreglo esté ordenado.
Implementar una función de búsqueda binaria, un algoritmo mucho más eficiente
que requiere que el arreglo esté previamente ordenado. Funciona dividiendo
repetidamente el intervalo de búsqueda por la mitad.
2: Algoritmos de Ordenamiento Cuadráticos (O(n2))¶
Implementar el ordenamiento de burbuja. Este método recorre repetidamente la
lista, compara elementos adyacentes y los intercambia si están en el orden
incorrecto. Las pasadas a través de la lista se repiten hasta que no se
necesiten más intercambios.
Implementar el ordenamiento por selección. Este algoritmo divide el arreglo en
una parte ordenada y una desordenada. En cada iteración, encuentra el elemento
más pequeño de la parte desordenada y lo intercambia con el primer elemento de
esta, moviendo así el límite entre ambas partes.
Implementar el ordenamiento por inserción. Este método construye el arreglo
ordenado final un elemento a la vez. Es muy eficiente para arreglos pequeños o
que ya están casi ordenados.
3: Algoritmos de Ordenamiento Avanzados (O(nlogn))¶