Começar. É Gratuito
ou inscrever-se com seu endereço de e-mail
Ordenamientos por Mind Map: Ordenamientos

1. Ordenamiento_por_Inserción

1.1. Funciona de una manera ligeramente muy diferente

1.1.1. Siempre mantiene una sublista ordenada en las posiciones inferiores de la lista.

1.1.2. Cada ítem nuevo se “inserta” de vuelta en la sublista previa de manera que la sublista ordenada sea un ítem más largo

1.1.2.1. Ejemplo

1.1.2.1.1. def Insertion_sort(Vector): for i in range(1,len(Vector)): actual = Vector[i] j = i #Desplazamiento de los elementos de la matriz } while j>0 and Vector[j-1]>actual: Vector[j]=Vector[j-1] j = j-1 #insertar el elemento en su lugar Vector[j]=actual

2. Ordenamiento_Shell

2.1. A veces llamado “ordenamiento de incremento decreciente”, mejora el ordenamiento por inserción al romper la lista original en varias sublistas más pequeñas, cada una de las cuales se ordena mediante un ordenamiento por inserción.

2.1.1. La manera única en que se eligen estas sublistas es la clave del ordenamiento de Shell.En lugar de dividir la lista en sublistas de ítems contiguos.

2.1.2. El ordenamiento de Shell usa un incremento i, a veces denominado brecha, para crear una sublista eligiendo todos los ítems que están separados por i ítems.

2.1.2.1. Ejemplo

2.1.2.1.1. def ordenamientoDeShell(unaLista): contadorSublistas = len(unaLista)//2 while contadorSublistas > 0: for posicionInicio in range(contadorSublistas): brechaOrdenamientoPorInsercion(unaLista,posicionInicio,contadorSublistas) print("Después de los incrementos de tamaño",contadorSublistas, "La lista es",unaLista) contadorSublistas = contadorSublistas // 2 def brechaOrdenamientoPorInsercion(unaLista,inicio,brecha): for i in range(inicio+brecha,len(unaLista),brecha): valorActual = unaLista[i] posicion = i while posicion>=brecha and unaLista[posicion-brecha]>valorActual: unaLista[posicion]=unaLista[posicion-brecha] posicion = posicion-brecha unaLista[posicion]=valorActual unaLista = [54,26,93,17,77,31,44,55,20] ordenamientoDeShell(unaLista) print(unaLista)

3. Ordenamiento_Rapido

3.1. Un ordenamiento rápido primero selecciona un valor, que se denomina el valor pivote. Aunque hay muchas formas diferentes de elegir el valor pivote, simplemente usaremos el primer ítem de la lista.

3.1.1. El papel del valor pivote es ayudar a dividir la lista

3.1.2. La posición real a la que pertenece el valor pivote en la lista final ordenada, comúnmente denominado punto de división se utilizará para dividir la lista para las llamadas posteriores a la función de ordenamiento rápido.

3.1.2.1. Ejemplo

3.1.2.1.1. def quick_sort(vector): if not vector: return [] else: pivote = vector[-1] menor = [x for x in vector if x < pivote] mas_grande = [x for x in vector[:-1] if x >= pivote] return quick_sort(menor) + [pivote] + quick_sort(mas_grande)

4. Ordenamiento_Burbuja

4.1. El ordenamiento burbuja hace múltiples pasadas a lo largo de una lista. Compara los ítems adyacentes e intercambia los que no están en orden.

4.1.1. Cada pasada a lo largo de la lista ubica el siguiente valor más grande en su lugar apropiado.

4.1.2. Es importante tener en cuenta que, una vez que el valor más grande de la lista es parte de una pareja, éste avanzará continuamente hasta que la pasada se complete.

4.1.2.1. Ejemplo

4.1.2.1.1. def ordenamientoBurbuja(unaLista): for numPasada in range(len(unaLista)-1,0,-1): for i in range(numPasada): if unaLista[i]>unaLista[i+1]: temp = unaLista[i] unaLista[i] = unaLista[i+1] unaLista[i+1] = temp unaLista = [54,26,93,17,77,31,44,55,20] ordenamientoBurbuja(unaLista) print(unaLista)

5. Ordenamiento_por_Selección

5.1. Mejora el ordenamiento burbuja haciendo un sólo intercambio por cada pasada a través de la lista.

5.1.1. Para hacer esto, un ordenamiento por selección busca el valor mayor a medida que hace una pasada y, después de completar la pasada, lo pone en la ubicación correcta.

5.1.2. Este proceso continúa y requiere n−1 pasadas para ordenar los n ítems, ya que el ítem final debe estar en su lugar después de la (n−1)-estima pasada

5.1.2.1. Ejemplo

5.1.2.1.1. def ordenamientoPorSeleccion(unaLista): for llenarRanura in range(len(unaLista)-1,0,-1): posicionDelMayor=0 for ubicacion in range(1,llenarRanura+1): if unaLista[ubicacion]>unaLista[posicionDelMayor]: posicionDelMayor = ubicacion temp = unaLista[llenarRanura] unaLista[llenarRanura] = unaLista[posicionDelMayor] unaLista[posicionDelMayor] = temp unaLista = [54,26,93,17,77,31,44,55,20] ordenamientoPorSeleccion(unaLista) print(unaLista)