Es un algoritmo para convertir una mezcla aleatoria de elementos en una lista ordenada (en comparación con alguna propiedad de cada elemento).
Por ejemplo, digamos que le dan una lista de números 8 4 3 9 1 5. Hay varias maneras en que podría ordenarlos por su valor numérico. Pero usemos el tipo de selección:
- Encuentra el número más pequeño de la lista … ese sería el 1, 2do del último. Cámbielo por el que está en la 1ª posición … ahora tiene una lista de 1 4 3 9 8 5
- Encuentre el más pequeño después del primer elemento … 3 en la tercera posición, cámbielo por la segunda posición … la lista ahora es 1 3 4 9 8 5.
- Encuentre el más pequeño desde la 3ra posición en adelante … 4 en la 3ra posición … manténgalo donde está ya que ya está en la 3ra posición
- Encuentra el más pequeño del 4to en adelante … terminando con 1 3 4 5 8 9
- La quinta posición ya contiene el 8 más pequeño
- Y la sexta posición ya contiene 9
Observe que esto parece bastante rápido y simple, ¿verdad? Sin embargo, el problema es esa palabra “Buscar”. Para cada uno de ellos significa pasar por cada uno siguiendo la posición actual, probar si es más pequeño que el último más pequeño que hayas encontrado. Cuando hayas llegado al final, el que has seguido es el más pequeño.
- Algoritmo: ¿Cómo debo comenzar el estudio de algoritmos?
- Cómo hacer un proyecto de chatbot
- Estoy tomando un curso en línea, Algorithms Part 1 de Sedgewick y Wayne en Coursera. Conozco bastante a Java, pero me llevó más de un día llegar a la mitad de la resolución de la primera tarea de programación. ¿Debería dejarlo? ¿Todos sienten lo mismo mientras aprenden sobre algoritmos?
- Dado un gráfico no dirigido y acíclico, ¿cómo encuentro el nodo para el cual la distancia máxima a cualquiera de los otros nodos es la más baja?
- ¿Cómo funciona el algoritmo de búsqueda de ciclo de Floyd? ¿De qué manera mover la tortuga al comienzo de la lista vinculada, mientras se mantiene a la liebre en el lugar de reunión, seguido de mover un paso a la vez, hace que se encuentren en el punto de inicio del ciclo?
Esto significa que en el paso 1, vas a repasar los 6 ítems completos, en el paso 2 repasas otros 5 ítems, etc. Eso significa que hay al menos 6 + 5 + 4 + 3 + 2 = 20 comparaciones a realizar, en Además de moverse a lo largo de la lista en primer lugar … 26 operaciones reales.
¿No es exactamente 6 x 6? No 36. Sin embargo, eso no es lo que big-O está tratando de mostrar. Más bien, ¿cómo aumenta el número de operaciones debido a un aumento en la longitud? En este caso sería 7 y 1 extra … 34 … no 7 x 7 = 49. Pero la proporción de aumento crece en la misma proporción. Por ejemplo, para cuando llegue a 10 artículos, hay 64 operaciones. Y se pone cada vez peor, exponencial. Por ejemplo, en n = 12 hay 89 operaciones. Así O (n ^ 2).