Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad

PROGRAMACIÓN Y ORDENAMIENTO DE BUSQUEDA, Resúmenes de European Computer Driving Licence (ECDL)

PROGRAMACIÓN Y ORDENAMIENTO DE BUSQUEDA

Tipo: Resúmenes

2011/2012

Subido el 12/06/2025

erika-sanchez-rcu
erika-sanchez-rcu 🇲🇽

2 documentos

1 / 6

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Responde las siguientes preguntas
1. ¿Cuál es la complejidad de búsqueda en un árbol binario y por qué?
Los árboles binarios funcionan con el principio básico de la búsqueda binaria, que consiste en dividir
la lista por la mitad y comparar ambas mitades para determinar en cuál de las dos se encuentra el
valor buscado; en cuanto se haya la mitad donde se encuentra el valor, se repite el proceso dividiendo
la nueva lista a la mitad y así sucesivamente. A comparación de la búsqueda por listas ordenadas, el
árbol binario ofrece menor tiempo de ejecución y como consecuencia, menores costos
computacionales. El proceso es más eficiente.
La complejidad computacional de este algoritmo es O(log n).
2. Investiga el algoritmo y complejidad de los siguientes algoritmos de ordenamiento.
a) BubbleSort:
Se denomina como método de la burbuja porque el proceso de ordenamiento se asemeja al
comportamiento de las burbujas en una bebida gaseosa: las burbujas más pequeñas o de
menor peso suben a la superficie y las de mayor peso se van al fondo de la bebida. Este
algoritmo funciona revisando y comparando cada elemento de la lista con el elemento
siguiente e intercambian sus posiciones si están en orden equivocado. Por lo anterior, se
considera un algoritmo de comparación. También es conocido como método de intercambio
directo.
Una desventaja de este método sucede cuando ha ordenado parte de los elementos y sigue
comparando todos los elementos, aun cuando ya no es necesario.
En la imagen anterior, se ejemplifica de forma visual el funcionamiento del método:
La primera iteración entre la posición 0 y la posición 1 del vector. Se comparan los
valores, es decir, el numero 5 con el 8. Como el 5 es menor que el 8, no cambian de
posición y pasan igual para la siguiente iteración.
En la segunda columna se observa la segunda iteracción. Se compara entre la
posición 1 y posición 2, es decir, el numero 8 con el 7. Como el 7 es menor que el 8,
intercambian posición.
Las comparaciones siguen con las posiciones siguientes hasta terminar con el
ordenamiento.
pf3
pf4
pf5

Vista previa parcial del texto

¡Descarga PROGRAMACIÓN Y ORDENAMIENTO DE BUSQUEDA y más Resúmenes en PDF de European Computer Driving Licence (ECDL) solo en Docsity!

Responde las siguientes preguntas

  1. ¿Cuál es la complejidad de búsqueda en un árbol binario y por qué? Los árboles binarios funcionan con el principio básico de la búsqueda binaria, que consiste en dividir la lista por la mitad y comparar ambas mitades para determinar en cuál de las dos se encuentra el valor buscado; en cuanto se haya la mitad donde se encuentra el valor, se repite el proceso dividiendo la nueva lista a la mitad y así sucesivamente. A comparación de la búsqueda por listas ordenadas, el árbol binario ofrece menor tiempo de ejecución y como consecuencia, menores costos computacionales. El proceso es más eficiente. La complejidad computacional de este algoritmo es O(log n).
  2. Investiga el algoritmo y complejidad de los siguientes algoritmos de ordenamiento. a) BubbleSort: Se denomina como método de la burbuja porque el proceso de ordenamiento se asemeja al comportamiento de las burbujas en una bebida gaseosa: las burbujas más pequeñas o de menor peso suben a la superficie y las de mayor peso se van al fondo de la bebida. Este algoritmo funciona revisando y comparando cada elemento de la lista con el elemento siguiente e intercambian sus posiciones si están en orden equivocado. Por lo anterior, se considera un algoritmo de comparación. También es conocido como método de intercambio directo. Una desventaja de este método sucede cuando ha ordenado parte de los elementos y sigue comparando todos los elementos, aun cuando ya no es necesario. En la imagen anterior, se ejemplifica de forma visual el funcionamiento del método:  La primera iteración entre la posición 0 y la posición 1 del vector. Se comparan los valores, es decir, el numero 5 con el 8. Como el 5 es menor que el 8, no cambian de posición y pasan igual para la siguiente iteración.  En la segunda columna se observa la segunda iteracción. Se compara entre la posición 1 y posición 2, es decir, el numero 8 con el 7. Como el 7 es menor que el 8, intercambian posición.  Las comparaciones siguen con las posiciones siguientes hasta terminar con el ordenamiento.

b) Shell Sort: Este método lleva el nombre de su inventor, Donald Shell. El algoritmo consiste en comparar los elementos de un arreglo, realizando intervalos entre ellos, los intervalos dependen de la longitud del arreglo. En otras palabras, el arreglo se divide en bloques o intervalos. Los intervalos se van comparando entre si y se intercambian los valores de las posiciones hasta que queden ordenados. Cada que el proceso se repite, los intervalos son más pequeños. Para elegir la longitud del intervalo, generalmente se utiliza la formula n/2, donde n es el número de elementos. En la siguiente imagen se ejemplifica de manera visual cómo funciona el método:  Primero, se determina el intervalo n/2. Donde n=6, por lo tanto, el intervalo es 3.  Se denota, entonces, que tenemos dos intervalos de 3 elementos. En la imagen, los intervalos están delimitados por la línea roja.  Para la primera iteración, vamos a comparar los elementos del 1er intervalo, con los elementos del 2do intervalo: {3,2}, {8,1} y {0,4}. Es decir, se compara el valor 3 con el 2, como 2 es menor que 3, se cambian de posición. También se compara el 8 con el 1, como 1 es menor que 8, también cambian de posición. En el 3er caso, se compara 0 con 4 y como 4 no es menor que 0, permanecen en su posición.  Para la siguiente iteración, se determina el nuevo intervalo n/2. Donde n=3, por lo tanto, el intervalo nuevo es 1.5 que se redondea a 1.  Se comparan los elementos de los nuevos intervalos: {2,1}, {1,3}, {3,8} y {0,4}. Después de esta segunda iteración, el arreglo queda: {1,2,0,3,8,4}.  Como el ultimo intervalo calculado es 1 y ese es el mínimo que se puede tener, se continua con ese intervalo hasta que ya no haya ningún intercambio de posición. Cuando se realiza un recorrido y no se encuentra ningún cambio de posición, se concluye que se ha terminado el proceso de ordenamiento. c) Radix Sort: Es un algoritmo que ordena los números procesándolos de forma individual, es decir, por dígitos (empezando por el menos significativo), sin importar cuantas cifras o dígitos tengan los números. Como el algoritmo procesa digito a digito, este no se delimita a números enteros, sino también a decimales (de tipo flotante). Para comprender mejor el método de Radix, se ordenará de forma visual un arreglo {11,34,90,30,37,82}.

{17,93}. Sigue la comparación entre los elementos de esos arreglos, concluyendo la primera mitad como {17,26,54,93}.  Se realiza el mismo proceso con la mitad restante. Tomando en cuenta que el arreglo {44} no tiene con quien compararse, el arreglo se copiara para continuar con el proceso. En el siguiente paso. Este método de ordenamiento, es de los mas eficientes, pero como utiliza funciones recursivas, el consumo de memoria RAM puede ser alto, ya que es proporcional a la cantidad de elementos a ordenar e) Quick Sort: Al igual que el caso anterior, es un algoritmo recursivo. Fue creado por Tony Hoare. Su funcionamiento se basa en elegir a un elemento del arreglo a ordenar, este será el pivote. Posteriormente se van a organizar todos los elementos del arreglo, de tal forma que de un lado queden todos los elementos menores a él y del otro lado, todos los elementos mayores que él. En ese momento, el pivote ocupa exactamente el lugar que le corresponde (aun sin importar si los elementos que están antes o después del él, están ordenados o no). Dicho lo anterior, se entiende que se crearon dos sublistas, una de cada lado. Este proceso se repite de forma recursiva hasta que todos los elementos queden ordenados. Cabe resaltar que se elige un nuevo pivote en casa sublista. La siguiente imagen representa de manera visual le funcionamiento del algoritmo. En el primer proceso se eligió como pivote a {3}. Se colocó en la primera sublista los valores menores a 3 y el la 2da sublista, los mayores a 3. Se repite el proceso con las nuevas sublistas que se crearon.

La complejidad de los algoritmos de ordenamiento antes mencionados es la siguiente: Algoritmo de ordenamiento Complejidad BubbleSort O(n²) Shell Sort O(n1.25) Radix Sort O(nk) Merge Sort O( n^ log^ n ) Quick Sort Promedio: O(n log n), peor caso: O(n²)

  1. Supón que tienes que implementar un sistema de administración de alumnos y decides organizarlos en las siguientes estructuras de datos ¿Cuánto tardarías en acomodar a un alumno nuevo en cada una de ellas? a) Lista ligada: La inserción de un elemento en este tipo de listas, depende si está vacía, si se va a insertar al final o al principio de la lista, o bien, si se desea insertar en alguna otra parte de la lista. Si se desea insertar en una lista vacía, primero se debe asignar un espacio en memoria para el nuevo elemento, posteriormente hay que cubrir el campo con los datos del alumno. El puntero del nuevo elemento, apunta a NULL, por tanto, el puntero de inicio y de fin, apuntan al elemento(alumno) recién ingresado. El tamaño de la lista, se actualiza. Si el nuevo elemento, se desea insertar al principio de la lista, entonces, después de cubrir el campo con los datos, el nuevo elemento apunta al primer elemento, el puntero de inicio, se dirige al nuevo elemento y, por último, el tamaño se incrementa. Cabe mencionar que el puntero final no cambia. En caso de que el elemento se añada al final de la lista, entonces el puntero siguiente del ultimo elemento, apunta hacia el nuevo alumno ingresado, en lugar de apuntar a NULL, y el puntero final apunta hacia el nuevo elemento. El tamaño es incrementado. Se destaca que el puntero de inicio no cambia. En el caso de que el alumno nuevo se quiera añadir a cualquier otra parte de la lista, que no sea al inicio o al final de una lista, entonces antes se debe elegir la posición de la lista. Posteriormente, el puntero siguiente del nuevo elemento, se apunta hacia la dirección del