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


Algoritmos de Ordenamiento: Merge Sort, Insertion Sort y Quick Sort, Transcripciones de Algoritmos y Programación

algoritmos de ordenamiento de o(Log(n)) y O(n^2)

Tipo: Transcripciones

2023/2024

Subido el 28/05/2024

nicolas-arellano-4
nicolas-arellano-4 🇨🇱

1 / 4

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
función mergesort(m) (𝑂(𝑛log𝑛)
var lista izquierda, derecha, resultado
si longitud(m) 1
devolver m
sino
var medio = longitud(m) / 2
para cada x en m hasta medio - 1
añadir x a izquierda
para cada x en m en y después de medio
añadir x a derecha
izquierda = mergesort(izquierda)
derecha = mergesort(derecha)
si último(izquierda) primero(derecha)
adjuntar derecha a izquierda
devolver izquierda
resultado = mezclar(izquierda, derecha)
devolver resultado
función mezclar(izquierda, derecha)
var lista resultado
mientras longitud(izquierda) > 0 y longitud(derecha) > 0
si primero(izquierda) primero(derecha)
adjuntar primero(izquierda) a resultado
izquierda = resto(izquierda)
sino
adjuntar primero(derecha) a resultado
derecha = resto(derecha)
si longitud(izquierda) > 0
adjuntar resto(izquierda) a resultado
si longitud(derecha) > 0
adjuntar resto(derecha) a resultado
devolver resultado
pf3
pf4

Vista previa parcial del texto

¡Descarga Algoritmos de Ordenamiento: Merge Sort, Insertion Sort y Quick Sort y más Transcripciones en PDF de Algoritmos y Programación solo en Docsity!

función mergesort(m) (𝑂(𝑛log𝑛) var lista izquierda, derecha, resultado si longitud(m) ≤ 1 devolver m sino var medio = longitud(m) / 2 para cada x en m hasta medio - 1 añadir x a izquierda para cada x en m en y después de medio añadir x a derecha izquierda = mergesort(izquierda) derecha = mergesort(derecha) si último(izquierda) ≤ primero(derecha) adjuntar derecha a izquierda devolver izquierda resultado = mezclar(izquierda, derecha) devolver resultado función mezclar(izquierda, derecha) var lista resultado mientras longitud(izquierda) > 0 y longitud(derecha) > 0 si primero(izquierda) ≤ primero(derecha) adjuntar primero(izquierda) a resultado izquierda = resto(izquierda) sino adjuntar primero(derecha) a resultado derecha = resto(derecha) si longitud(izquierda) > 0 adjuntar resto(izquierda) a resultado si longitud(derecha) > 0 adjuntar resto(derecha) a resultado devolver resultado

ORDENAMIENTO-POR-INSERCIÓN (A), O(n^2), O(n) 1 para j <- 2 hasta longitud[A] 2 do key <- A[j] 3 Insertar A[j] en la secuencia ordenada A[1.. j - 1]. 4 i <- j - 1 5 mientras i > 0 y A[i] > key 6 hacer A[i + 1] <- A[i] 7 i <- i - 1 8 A[i + 1] <- clave

end if end for if not swapped break end if end for end procedure