SlideShare una empresa de Scribd logo
1 de 36
Descargar para leer sin conexión
ALGORITMOS DE
ORDENAMIENTO
CON PYTHON
Mg. Richard E. Mendoza G.
https://www.youtube.com/watch?v=gUjXiYtOC7Y
https://www.youtube.com/watch?v=lyZQPjUT5B4
https://forbes.co/2020/10/21/emprendedores/las-10-startups-que-hacen-
parte-la-cuarta-generacion-de-rockstart-latam/
¿Qué es un algoritmo de
ordenamiento?
Son estos algoritmos que se
encargan de dar un orden a un set
de datos (números o letras).
¿Qué es orden?
Un orden dado o especifico.
Generalmente en estos algoritmos
se genera por un arreglo(Array).
Algoritmos de Ordenamiento
vector1=['d','c','b','a']
print(vector1)
print(vector1.sort())
vector2=[5,4,3,2,1]
print(vector2)
print(vector2.sort())
['a','b','c','d'] #arreglo ordenado alfa
béticamente.
[1,2,3,4,5] #un arreglo de números enter
os en orden ascendente.
⚫Determinar con exactitud el origen del ordenamiento
burbuja es un poco complicado, ya que no existe
información precisa sobre su origen.
⚫Aunque en 1956 se encuentra expresado en un articulo
al que llamaron “ordenamiento por intercambio”
⚫Existe una amplia bibliografía de artículos del año 1962
donde mencionan tipos de ordenamiento basados en
este patrón, pero ninguno de ellos usando el nombre
como tal.
Historia
⚫Sin evidente origen definitivo del nombre "burbuja“ se
cierran sus orígenes mediante la consulta de los
primeros artículos de revistas así como textos
profesionales y pedagógicos de esta época.
⚫Obtiene su nombre de la forma con la que suben por la
lista los elementos durante los intercambios, como si
fueran pequeñas "burbujas".
⚫También es conocido como el método del
intercambio directo. Dado que solo usa comparaciones
para operar elementos, se lo considera un algoritmo de
comparación, siendo el más sencillo de implementar.
Historia
La Ordenación de burbuja funciona
revisando cada elemento de la lista
que va a ser ordenada con el
siguiente, intercambiándolos de
posición si están en el orden
equivocado. Es necesario revisar
varias veces toda la lista hasta que
no se necesiten más intercambios, lo
cual significa que la lista está
ordenada.
Bubble Sort
Bubble Sort
Ventajas:
● Eficaz
● Sencillo
● Codigo reducido para realizar el
ordenamiento
Desventajas:
● Consume bastante tiempo de
computadora
● Requiere muchas
lecturas/escrituras en memoria
Ventajas y Desventajas
A[0] A[1] A[2] A[3] A[4] cont1 cont2
15 4 18 27 6
vector[cont2] vector[cont2+1] temporal
Algoritmo OrdenamientoBubbleSort
Escribir 'Programa Ordenamiento Intercambio Directo o Burbuja’
Escribir 'Digite tamaño del vector’
Leer tamanio
Dimension vector[tamanio]
Para conta_i←1 Hasta tamanio Con Paso 1 Hacer
Escribir 'Digite los elementos:’
Leer elemento vector[conta_i]=elemento
Fin Para
Escribir 'Vector Original:’
Para conta_i←1 Hasta tamanio Con Paso 1 Hacer
Escribir vector[conta_i]
Fin Para
Para conta_i←2 Hasta tamanio Con Paso 1 Hacer
Para conta_j←1 Hasta tamanio-1 Con Paso 1 Hacer
Si vector[conta_j]>vector[conta_j+1] Entonces
temporal←vector[conta_j]
vector[conta_j]←vector[conta_j+1]
vector[conta_j+1]←temporal
Fin Si
Fin Para
Fin Para
Escribir 'Vector Ordenado:’
Para conta_i←1 Hasta tamanio Con Paso 1 Hacer
Escribir vector[conta_i]
Fin Para
FinAlgoritmo
#ORDENAMIENTO INTERCAMBIO O BURBUJA
print('Programa Ordenamiento Burbuja')
vector=[]
for cont1 in range(0,5):
elemento=int(input('Digite elemento del vector:'))
vector.append(elemento)
print(vector)
for cont2 in range(1,5):
for cont3 in range(0,4):
if vector[cont3]>vector[cont3+1]:
temporal=vector[cont3]
vector[cont3]=vector[cont3+1]
vector[cont3+1]=temporal
print(vector)
En el contexto de un arreglo, el
proceso de este algoritmo consiste
en buscar el menor elemento e
intercambiarlo por el elemento en la
primera posición. Luego se busca el
segundo elemento más pequeño del
arreglo y se intercambia con el
elemento de la segunda posición. El
proceso continúa hasta que todos los
elementos del arreglo hayan sido
ordenados.
Selection Sort
Seleccionamos la primera posición del arreglo, que es donde comenzaremos la
lista ordenada; en el ejemplo, el valor en esa posición es el 15. Recorremos toda
la lista y nos damos cuenta de que el elemento menor es el 10, como lo vemos
en la siguiente imagen.
Selection Sort
Una vez ubicados, la primera posición del arreglo y el elemento menor de la lista, los
intercambiamos de lugar. Lo anterior da como resultado que el elemento más bajo quede
en la primera posición de la lista.
Se localiza la segunda posición del arreglo (abajo de color amarillo), así como el siguiente
elemento menor (abajo de color rojo), y los intercambiamos como lo hicimos en el
ordenamiento anterior.
A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7]
15 33 27 10 35 19 42 44
Conta_i Conta_j Indice_k Intervalo Tamanio
Algoritmo OrdenamientoSeleccion
Escribir 'Programa Ordenamiento Selección’
Escribir 'Digite tamaño del vector:’
Leer tamanio
Dimension vector[tamanio]
Para conta_i←1 Hasta tamanio Con Paso 1 Hacer
Escribir 'Digite los elementos del vector:’
Leer elemento vector[conta_i]←elemento
Fin Para
Para conta_i←1 Hasta tamanio Con Paso 1 Hacer
Escribir vector[conta_i]
Fin Para
Para conta_i←1 Hasta tamanio-1 Con Paso 1 Hacer
temporal←vector[conta_i]-intervalo
indice_k←conta_i
Para conta_j←conta_i+1 Hasta tamanio Con Paso 1 Hacer
Si vector[conta_j]<temporal Entonces
temporal←vector[conta_j]
indice_k←conta_j
FinSi
Fin Para
vector[indice_k]←vector[conta_i]
vector[conta_i]←temporal
Fin Para
Para conta_i←1 Hasta tamanio Con Paso 1 Hacer
Escribir vector[conta_i]
Fin Para
FinAlgoritmo
print('Programa Ordenamiento Selection Sort')
tamanio=int(input('Digite tamaño del vector:'))
vector=[]
for conta_i in range(0,tamanio):
elemento=int(input('Digite elemento:'))
vector.append(elemento)
print(vector)
for conta_i in range(0,tamanio):
temporal=vector[conta_i]
indice_k=conta_i
for conta_j in range(conta_i+1, tamanio):
if vector[conta_j]<temporal:
temporal=vector[conta_j]
indice_k=conta_j
vector[indice_k]=vector[conta_i]
vector[conta_i]=temporal
print(vector)
En un arreglo es importante tomar
en cuenta que, al inicio del
ordenamiento, la parte izquierda
ordenada no tenga ningún
elemento, así que lo que se hace es
ir formando la parte ordenada con
los primeros elementos del arreglo.
Insertion Sort
Comparamos los dos primeros elementos (15 y 33) y, como se puede observar,
ya están ordenados de menor a mayor. Hasta aquí, nuestra lista ordenada está
compuesta sólo por el primer elemento (15).
Insertion Sort
Comparamos 33 y 27, y vemos que no están ordenados, entonces, hacemos el
intercambio. Después se compara el 27 con el 15, es decir, con la parte ordenada y vemos
que no es necesario hacer nada, así se vuelve parte de la lista ordenada.
Comparamos 33 y 10, se intercambian y después comparamos el 10 con nuestra lista
ordenada, para que pueda formar parte de ella.
A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] j v
15 33 27 10 35 19 42 44
Conta_i Conta_j Indice_k Intervalo Tamanio
Algoritmo InsertionSort
Escribir 'Programa Ordenamiento Insertion Sort’
Escribir 'Digite tamaño del vector’
Leer tamanio
Dimension vector[tamanio]
Para conta_i←1 Hasta tamanio Con Paso 1 Hacer
Escribir 'Digite los elementos:’
Leer elemento vector[conta_i]=elemento
Fin Para
Para conta_i←2 Hasta tamanio Con Paso 1 Hacer
temporal←vector[conta_i]
conta_j=conta_i-1
Mientras temporal<vector[conta_j] Y conta_j≥1 Hacer
vector[conta_j+1]←vector[conta_j]
conta_j←conta_j-1
Fin Mientras
vector[conta_j]←temporal
Fin Para
Para conta_i←1 Hasta tamanio Con Paso 1 Hacer
Escribir vector[conta_i]
Fin Para
FinAlgoritmo
print('Programa Ordenamiento Insercion Sort')
tamanio=int(input('Digite tamaño del vector:'))
vector=[]
#[15,33,27,10,35,19,42,44]
for conta_i in range(0,tamanio):
elemento=int(input('Digite elemento:'))
vector.append(elemento)
print(vector)
for conta_i in range(1,tamanio):
temporal=vector[conta_i]
conta_j=conta_i
while temporal<vector[conta_j-1] and conta_j>0:
vector[conta_j]=vector[conta_j-1]
conta_j=conta_j-1
vector[conta_j]=temporal
print(vector)
El método de ordenamiento Shell consiste
en dividir el arreglo (o la lista de
elementos) en intervalos (o bloques) de
varios elementos para organizarlos
después por medio del ordenamiento de
inserción directa. El proceso se repite, pero
con intervalos cada vez más pequeños, de
tal manera que al final, el ordenamiento se
haga en un intervalo de una sola posición,
similar al ordenamiento por inserción
directa, la diferencia entre ambos es qué, al
final, en el método Shell. Su nombre
proviene de su creador, Donald Shell.
Shell Sort
Shell Sort
Existen varias formas de calcular el
intervalo, lo cual puede mejorar la
efectividad del algoritmo. A continuación,
explicaremos la secuencia original
propuesta por Shell: n/2, n/4…, n/n, es
decir, uno (dividir entre dos, hasta que el
último intervalo sea uno), donde n es el
tamaño del arreglo. Se realiza la
ordenación, primero tomando como valor
inicial de intervalo 4; es decir, como el
número de elementos n es 8, tenemos
que n/2 = 4.
Podemos decir también que en esta
primera interacción dividimos el arreglo
en cuatro subarreglos: {15,35}, {33,19},
{27,42} y {10,44}.
A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] j v
15 33 27 10 35 19 42 44
Conta_i Conta_j Indice_k Intervalo Tamanio
Algoritmo shellsort
Escribir 'Programa Ordenamiento Shell Sort’
Escribir 'Digite tamaño del vector’
Leer tamanio
Dimension unaLista[tamanio]
Definir conta_i,conta_j, conta_k, temporal Como Entero
Para conta_i←1 Hasta tamanio Con Paso 1 Hacer
Escribir 'Digite elemento del vector:’
Leer elemento unalista[conta_i]=elemento
Fin Para
intervalo=trunc(tamanio/2)
Mientras intervalo>0 Hacer
Para conta_i←intervalo Hasta tamanio Con Paso 1 Hacer
conta_j←conta_i-intervalo
Mientras conta_j≥1 Hacer
conta_k←conta_j+intervalo
Si unalista[conta_j]≤unalista[conta_k] Entonces
conta_j←conta_j-1
SiNo temporal←unalista[conta_j]
unalista[conta_j]←unalista[conta_k]
unalista[conta_k]←temporal
Fin Si
Fin Mientras
Fin Para
intervalo←trunc(intervalo/2)
Fin Mientras
Para conta_i←1 Hasta tamanio Con Paso 1 Hacer
Escribir unalista[conta_i]
Fin Para
FinAlgoritmo
print("Programa Ordenamiento Shell Sort")
print("Digite tamaño del vector")
tamanio = int(input("Digite tamaño del vector"))
unalista = []
for conta_i in range(0,tamanio):
elemento = int(input("Digite elemento del vector:"))
unalista.append(elemento)
intervalo = int(tamanio/2)
print(unalista)
while intervalo>0:
for conta_i in range(intervalo,tamanio+1):
conta_j = conta_i-intervalo
while conta_j>=1:
conta_k = conta_j+intervalo
if unalista[conta_j-1]<=unalista[conta_k-1]:
conta_j = conta_j-1
else:
temporal = unalista[conta_j-1]
unalista[conta_j-1] = unalista[conta_k-1]
unalista[conta_k-1] = temporal
intervalo = int(intervalo/2)
print(unalista)
Aproximaciónde
solucionesy
búsquedabinaria
Módulo 3
● Es un método que se basa en la
división sucesiva del espacio
ocupado por el vector en
sucesivas mitades, hasta
encontrar el elemento buscado.
● Esta búsqueda utiliza un método
de “divide y vencerás” para
localizar el valor deseado. Con
este método se examina primero
el elemento central de la lista; si
este es el elemento buscado
entonces la búsqueda ha
terminado.
BUSQUEDA BINARIA
encontrado=False
izquierda=0
derecha=tamanio
numeroBuscado=int(input('Digite numero a buscar:'))
while not(encontrado) and izquierda<=derecha:
medio=int((izquierda+derecha)/2)
if numeroBuscado==vector[medio]:
encontrado=True
elif numeroBuscado<vector[medio]:
derecha=medio-1
else:
izquierda=medio+1
if encontrado==True:
print('Numero encontrado en', str(medio+1))
else:
print('Numero no encontrado')
HORARIO G20
HORARIO G24
HORARIO G27

Más contenido relacionado

Similar a Semana 5 Algoritmos Ordenamiento y Búsqueda

Arreglos
ArreglosArreglos
ArreglosUPTC
 
Sesion02
Sesion02Sesion02
Sesion02Alex
 
Arreglos En Una Dimension
Arreglos En Una DimensionArreglos En Una Dimension
Arreglos En Una Dimensionyperalta
 
Arreglos En Una Dimension
Arreglos En Una DimensionArreglos En Una Dimension
Arreglos En Una Dimensionyperalta
 
6.1 vectores
6.1 vectores6.1 vectores
6.1 vectoresSNPP
 
bhguhffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
bhguhffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbhguhffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
bhguhffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLuLopez7
 
Intro Java 3
Intro Java 3Intro Java 3
Intro Java 3ramaguayo
 
Intro Java 3
Intro Java 3Intro Java 3
Intro Java 3ramaguayo
 
Tipos De Datos En Java
Tipos De Datos En JavaTipos De Datos En Java
Tipos De Datos En Javapointpower
 
Informe de proyecto final
Informe de proyecto finalInforme de proyecto final
Informe de proyecto finalAldrin Eduardo
 
S12-Vectores.pdf
S12-Vectores.pdfS12-Vectores.pdf
S12-Vectores.pdfJesusNunura
 
Estructuras de datos
Estructuras de datosEstructuras de datos
Estructuras de datosGabriel0107
 

Similar a Semana 5 Algoritmos Ordenamiento y Búsqueda (20)

Arreglos
ArreglosArreglos
Arreglos
 
Sesion02
Sesion02Sesion02
Sesion02
 
Arreglos
ArreglosArreglos
Arreglos
 
Arreglos En Una Dimension
Arreglos En Una DimensionArreglos En Una Dimension
Arreglos En Una Dimension
 
Arreglos En Una Dimension
Arreglos En Una DimensionArreglos En Una Dimension
Arreglos En Una Dimension
 
6.1 vectores
6.1 vectores6.1 vectores
6.1 vectores
 
Explicacion Taller
Explicacion TallerExplicacion Taller
Explicacion Taller
 
Arrays unidimensionales
Arrays unidimensionalesArrays unidimensionales
Arrays unidimensionales
 
bhguhffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
bhguhffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbhguhffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
bhguhffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 
Intro Java 3
Intro Java 3Intro Java 3
Intro Java 3
 
Intro Java 3
Intro Java 3Intro Java 3
Intro Java 3
 
Estructuras
Estructuras Estructuras
Estructuras
 
Tipos De Datos En Java
Tipos De Datos En JavaTipos De Datos En Java
Tipos De Datos En Java
 
Cap7 1 vectores
Cap7 1 vectoresCap7 1 vectores
Cap7 1 vectores
 
Arreglos unidimensionales
Arreglos unidimensionalesArreglos unidimensionales
Arreglos unidimensionales
 
Informe de proyecto final
Informe de proyecto finalInforme de proyecto final
Informe de proyecto final
 
S12-Vectores.pdf
S12-Vectores.pdfS12-Vectores.pdf
S12-Vectores.pdf
 
Arreglos
ArreglosArreglos
Arreglos
 
Arreglos
ArreglosArreglos
Arreglos
 
Estructuras de datos
Estructuras de datosEstructuras de datos
Estructuras de datos
 

Más de Richard Eliseo Mendoza Gafaro

PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 3
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 3PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 3
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 3Richard Eliseo Mendoza Gafaro
 
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 2
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 2PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 2
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 2Richard Eliseo Mendoza Gafaro
 
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 4
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 4PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 4
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 4Richard Eliseo Mendoza Gafaro
 
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 1
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 1PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 1
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 1Richard Eliseo Mendoza Gafaro
 
PARCIAL 2 SISTEMAS OPERATIVOS - BD MYSQL EN ORACLE OCI
PARCIAL 2 SISTEMAS OPERATIVOS - BD MYSQL EN ORACLE OCIPARCIAL 2 SISTEMAS OPERATIVOS - BD MYSQL EN ORACLE OCI
PARCIAL 2 SISTEMAS OPERATIVOS - BD MYSQL EN ORACLE OCIRichard Eliseo Mendoza Gafaro
 

Más de Richard Eliseo Mendoza Gafaro (20)

CUESTIONARIO REDES TELEMATICAS CISCO, HPE Y HUAWEI
CUESTIONARIO REDES TELEMATICAS CISCO, HPE Y HUAWEICUESTIONARIO REDES TELEMATICAS CISCO, HPE Y HUAWEI
CUESTIONARIO REDES TELEMATICAS CISCO, HPE Y HUAWEI
 
Material_para_Estudiante_DMPC_V012022A_SP_1
Material_para_Estudiante_DMPC_V012022A_SP_1Material_para_Estudiante_DMPC_V012022A_SP_1
Material_para_Estudiante_DMPC_V012022A_SP_1
 
MANUAL DE ORACLE AUTONOMOUS DATABASE
MANUAL DE ORACLE AUTONOMOUS DATABASEMANUAL DE ORACLE AUTONOMOUS DATABASE
MANUAL DE ORACLE AUTONOMOUS DATABASE
 
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 3
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 3PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 3
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 3
 
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 2
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 2PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 2
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 2
 
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 4
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 4PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 4
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 4
 
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 1
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 1PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 1
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 1
 
PARCIAL 2 SISTEMAS OPERATIVOS - BD MYSQL EN ORACLE OCI
PARCIAL 2 SISTEMAS OPERATIVOS - BD MYSQL EN ORACLE OCIPARCIAL 2 SISTEMAS OPERATIVOS - BD MYSQL EN ORACLE OCI
PARCIAL 2 SISTEMAS OPERATIVOS - BD MYSQL EN ORACLE OCI
 
PARCIAL 2 DESARROLLO DE INTERFACES UI UX
PARCIAL 2 DESARROLLO DE INTERFACES UI UXPARCIAL 2 DESARROLLO DE INTERFACES UI UX
PARCIAL 2 DESARROLLO DE INTERFACES UI UX
 
Explicación cadena de valor
Explicación cadena de valorExplicación cadena de valor
Explicación cadena de valor
 
MANUAL DESPLIEGUE SERVIDOR WEB
MANUAL DESPLIEGUE SERVIDOR WEBMANUAL DESPLIEGUE SERVIDOR WEB
MANUAL DESPLIEGUE SERVIDOR WEB
 
MANUAL DE DESPLIEGUE BASE DE DATOS CON WORKBENCH
MANUAL DE DESPLIEGUE BASE DE DATOS CON WORKBENCHMANUAL DE DESPLIEGUE BASE DE DATOS CON WORKBENCH
MANUAL DE DESPLIEGUE BASE DE DATOS CON WORKBENCH
 
CUESTIONARIO INTRODUCCION A UNITY 3D v2
CUESTIONARIO INTRODUCCION A UNITY 3D v2CUESTIONARIO INTRODUCCION A UNITY 3D v2
CUESTIONARIO INTRODUCCION A UNITY 3D v2
 
CUESTIONARIO INTRODUCCION A UNITY 3D
CUESTIONARIO INTRODUCCION A UNITY 3DCUESTIONARIO INTRODUCCION A UNITY 3D
CUESTIONARIO INTRODUCCION A UNITY 3D
 
MANUAL DESPLIEGUE SERVIDOR BASE DE DATOS
MANUAL DESPLIEGUE SERVIDOR BASE DE DATOSMANUAL DESPLIEGUE SERVIDOR BASE DE DATOS
MANUAL DESPLIEGUE SERVIDOR BASE DE DATOS
 
INTRODUCCION A SISTEMAS OPERATIVOS
INTRODUCCION A SISTEMAS OPERATIVOSINTRODUCCION A SISTEMAS OPERATIVOS
INTRODUCCION A SISTEMAS OPERATIVOS
 
CLASE 2 ORACLE CLOUD
CLASE 2 ORACLE CLOUDCLASE 2 ORACLE CLOUD
CLASE 2 ORACLE CLOUD
 
CASOS DE ESTUDIO MODELADO DEL NEGOCIO
CASOS DE ESTUDIO MODELADO DEL NEGOCIOCASOS DE ESTUDIO MODELADO DEL NEGOCIO
CASOS DE ESTUDIO MODELADO DEL NEGOCIO
 
MATERIAL DE ESTUDIO CCNA
MATERIAL DE ESTUDIO CCNAMATERIAL DE ESTUDIO CCNA
MATERIAL DE ESTUDIO CCNA
 
PREGUNTAS TOGAF 9.2 RESPUESTAS
PREGUNTAS TOGAF 9.2 RESPUESTASPREGUNTAS TOGAF 9.2 RESPUESTAS
PREGUNTAS TOGAF 9.2 RESPUESTAS
 

Último

Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptxProcesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptxJuanPablo452634
 
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptxNTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptxBRAYANJOSEPTSANJINEZ
 
ECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfmatepura
 
Obras paralizadas en el sector construcción
Obras paralizadas en el sector construcciónObras paralizadas en el sector construcción
Obras paralizadas en el sector construcciónXimenaFallaLecca1
 
clasificasion de vias arteriales , vias locales
clasificasion de vias arteriales , vias localesclasificasion de vias arteriales , vias locales
clasificasion de vias arteriales , vias localesMIGUELANGEL2658
 
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdfLA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdfbcondort
 
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfReporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfMikkaelNicolae
 
nomenclatura de equipo electrico en subestaciones
nomenclatura de equipo electrico en subestacionesnomenclatura de equipo electrico en subestaciones
nomenclatura de equipo electrico en subestacionesCarlosMeraz16
 
TEXTO UNICO DE LA LEY-DE-CONTRATACIONES-ESTADO.pdf
TEXTO UNICO DE LA LEY-DE-CONTRATACIONES-ESTADO.pdfTEXTO UNICO DE LA LEY-DE-CONTRATACIONES-ESTADO.pdf
TEXTO UNICO DE LA LEY-DE-CONTRATACIONES-ESTADO.pdfXimenaFallaLecca1
 
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERAS
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERASDOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERAS
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERASPersonalJesusGranPod
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaXimenaFallaLecca1
 
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdfCristhianZetaNima
 
Quimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfQuimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfs7yl3dr4g0n01
 
Principales aportes de la carrera de William Edwards Deming
Principales aportes de la carrera de William Edwards DemingPrincipales aportes de la carrera de William Edwards Deming
Principales aportes de la carrera de William Edwards DemingKevinCabrera96
 
Controladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y VentajasControladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y Ventajasjuanprv
 
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAINTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAJOSLUISCALLATAENRIQU
 
Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...Dr. Edwin Hernandez
 
clases de porcinos generales de porcinos
clases de porcinos generales de porcinosclases de porcinos generales de porcinos
clases de porcinos generales de porcinosDayanaCarolinaAP
 
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdfECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdffredyflores58
 
PPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfPPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfalexquispenieto2
 

Último (20)

Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptxProcesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
 
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptxNTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptx
 
ECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdf
 
Obras paralizadas en el sector construcción
Obras paralizadas en el sector construcciónObras paralizadas en el sector construcción
Obras paralizadas en el sector construcción
 
clasificasion de vias arteriales , vias locales
clasificasion de vias arteriales , vias localesclasificasion de vias arteriales , vias locales
clasificasion de vias arteriales , vias locales
 
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdfLA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
 
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfReporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
 
nomenclatura de equipo electrico en subestaciones
nomenclatura de equipo electrico en subestacionesnomenclatura de equipo electrico en subestaciones
nomenclatura de equipo electrico en subestaciones
 
TEXTO UNICO DE LA LEY-DE-CONTRATACIONES-ESTADO.pdf
TEXTO UNICO DE LA LEY-DE-CONTRATACIONES-ESTADO.pdfTEXTO UNICO DE LA LEY-DE-CONTRATACIONES-ESTADO.pdf
TEXTO UNICO DE LA LEY-DE-CONTRATACIONES-ESTADO.pdf
 
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERAS
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERASDOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERAS
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERAS
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
 
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
 
Quimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfQuimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdf
 
Principales aportes de la carrera de William Edwards Deming
Principales aportes de la carrera de William Edwards DemingPrincipales aportes de la carrera de William Edwards Deming
Principales aportes de la carrera de William Edwards Deming
 
Controladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y VentajasControladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y Ventajas
 
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAINTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
 
Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...
 
clases de porcinos generales de porcinos
clases de porcinos generales de porcinosclases de porcinos generales de porcinos
clases de porcinos generales de porcinos
 
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdfECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
 
PPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfPPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdf
 

Semana 5 Algoritmos Ordenamiento y Búsqueda

  • 2.
  • 3.
  • 6.
  • 8. ¿Qué es un algoritmo de ordenamiento? Son estos algoritmos que se encargan de dar un orden a un set de datos (números o letras). ¿Qué es orden? Un orden dado o especifico. Generalmente en estos algoritmos se genera por un arreglo(Array). Algoritmos de Ordenamiento vector1=['d','c','b','a'] print(vector1) print(vector1.sort()) vector2=[5,4,3,2,1] print(vector2) print(vector2.sort()) ['a','b','c','d'] #arreglo ordenado alfa béticamente. [1,2,3,4,5] #un arreglo de números enter os en orden ascendente.
  • 9.
  • 10.
  • 11. ⚫Determinar con exactitud el origen del ordenamiento burbuja es un poco complicado, ya que no existe información precisa sobre su origen. ⚫Aunque en 1956 se encuentra expresado en un articulo al que llamaron “ordenamiento por intercambio” ⚫Existe una amplia bibliografía de artículos del año 1962 donde mencionan tipos de ordenamiento basados en este patrón, pero ninguno de ellos usando el nombre como tal. Historia
  • 12. ⚫Sin evidente origen definitivo del nombre "burbuja“ se cierran sus orígenes mediante la consulta de los primeros artículos de revistas así como textos profesionales y pedagógicos de esta época. ⚫Obtiene su nombre de la forma con la que suben por la lista los elementos durante los intercambios, como si fueran pequeñas "burbujas". ⚫También es conocido como el método del intercambio directo. Dado que solo usa comparaciones para operar elementos, se lo considera un algoritmo de comparación, siendo el más sencillo de implementar. Historia
  • 13. La Ordenación de burbuja funciona revisando cada elemento de la lista que va a ser ordenada con el siguiente, intercambiándolos de posición si están en el orden equivocado. Es necesario revisar varias veces toda la lista hasta que no se necesiten más intercambios, lo cual significa que la lista está ordenada. Bubble Sort
  • 15. Ventajas: ● Eficaz ● Sencillo ● Codigo reducido para realizar el ordenamiento Desventajas: ● Consume bastante tiempo de computadora ● Requiere muchas lecturas/escrituras en memoria Ventajas y Desventajas
  • 16. A[0] A[1] A[2] A[3] A[4] cont1 cont2 15 4 18 27 6 vector[cont2] vector[cont2+1] temporal Algoritmo OrdenamientoBubbleSort Escribir 'Programa Ordenamiento Intercambio Directo o Burbuja’ Escribir 'Digite tamaño del vector’ Leer tamanio Dimension vector[tamanio] Para conta_i←1 Hasta tamanio Con Paso 1 Hacer Escribir 'Digite los elementos:’ Leer elemento vector[conta_i]=elemento Fin Para Escribir 'Vector Original:’ Para conta_i←1 Hasta tamanio Con Paso 1 Hacer Escribir vector[conta_i] Fin Para Para conta_i←2 Hasta tamanio Con Paso 1 Hacer Para conta_j←1 Hasta tamanio-1 Con Paso 1 Hacer Si vector[conta_j]>vector[conta_j+1] Entonces temporal←vector[conta_j] vector[conta_j]←vector[conta_j+1] vector[conta_j+1]←temporal Fin Si Fin Para Fin Para Escribir 'Vector Ordenado:’ Para conta_i←1 Hasta tamanio Con Paso 1 Hacer Escribir vector[conta_i] Fin Para FinAlgoritmo
  • 17. #ORDENAMIENTO INTERCAMBIO O BURBUJA print('Programa Ordenamiento Burbuja') vector=[] for cont1 in range(0,5): elemento=int(input('Digite elemento del vector:')) vector.append(elemento) print(vector) for cont2 in range(1,5): for cont3 in range(0,4): if vector[cont3]>vector[cont3+1]: temporal=vector[cont3] vector[cont3]=vector[cont3+1] vector[cont3+1]=temporal print(vector)
  • 18. En el contexto de un arreglo, el proceso de este algoritmo consiste en buscar el menor elemento e intercambiarlo por el elemento en la primera posición. Luego se busca el segundo elemento más pequeño del arreglo y se intercambia con el elemento de la segunda posición. El proceso continúa hasta que todos los elementos del arreglo hayan sido ordenados. Selection Sort
  • 19. Seleccionamos la primera posición del arreglo, que es donde comenzaremos la lista ordenada; en el ejemplo, el valor en esa posición es el 15. Recorremos toda la lista y nos damos cuenta de que el elemento menor es el 10, como lo vemos en la siguiente imagen. Selection Sort Una vez ubicados, la primera posición del arreglo y el elemento menor de la lista, los intercambiamos de lugar. Lo anterior da como resultado que el elemento más bajo quede en la primera posición de la lista. Se localiza la segunda posición del arreglo (abajo de color amarillo), así como el siguiente elemento menor (abajo de color rojo), y los intercambiamos como lo hicimos en el ordenamiento anterior.
  • 20. A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] 15 33 27 10 35 19 42 44 Conta_i Conta_j Indice_k Intervalo Tamanio Algoritmo OrdenamientoSeleccion Escribir 'Programa Ordenamiento Selección’ Escribir 'Digite tamaño del vector:’ Leer tamanio Dimension vector[tamanio] Para conta_i←1 Hasta tamanio Con Paso 1 Hacer Escribir 'Digite los elementos del vector:’ Leer elemento vector[conta_i]←elemento Fin Para Para conta_i←1 Hasta tamanio Con Paso 1 Hacer Escribir vector[conta_i] Fin Para Para conta_i←1 Hasta tamanio-1 Con Paso 1 Hacer temporal←vector[conta_i]-intervalo indice_k←conta_i Para conta_j←conta_i+1 Hasta tamanio Con Paso 1 Hacer Si vector[conta_j]<temporal Entonces temporal←vector[conta_j] indice_k←conta_j FinSi Fin Para vector[indice_k]←vector[conta_i] vector[conta_i]←temporal Fin Para Para conta_i←1 Hasta tamanio Con Paso 1 Hacer Escribir vector[conta_i] Fin Para FinAlgoritmo
  • 21. print('Programa Ordenamiento Selection Sort') tamanio=int(input('Digite tamaño del vector:')) vector=[] for conta_i in range(0,tamanio): elemento=int(input('Digite elemento:')) vector.append(elemento) print(vector) for conta_i in range(0,tamanio): temporal=vector[conta_i] indice_k=conta_i for conta_j in range(conta_i+1, tamanio): if vector[conta_j]<temporal: temporal=vector[conta_j] indice_k=conta_j vector[indice_k]=vector[conta_i] vector[conta_i]=temporal print(vector)
  • 22. En un arreglo es importante tomar en cuenta que, al inicio del ordenamiento, la parte izquierda ordenada no tenga ningún elemento, así que lo que se hace es ir formando la parte ordenada con los primeros elementos del arreglo. Insertion Sort
  • 23. Comparamos los dos primeros elementos (15 y 33) y, como se puede observar, ya están ordenados de menor a mayor. Hasta aquí, nuestra lista ordenada está compuesta sólo por el primer elemento (15). Insertion Sort Comparamos 33 y 27, y vemos que no están ordenados, entonces, hacemos el intercambio. Después se compara el 27 con el 15, es decir, con la parte ordenada y vemos que no es necesario hacer nada, así se vuelve parte de la lista ordenada. Comparamos 33 y 10, se intercambian y después comparamos el 10 con nuestra lista ordenada, para que pueda formar parte de ella.
  • 24. A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] j v 15 33 27 10 35 19 42 44 Conta_i Conta_j Indice_k Intervalo Tamanio Algoritmo InsertionSort Escribir 'Programa Ordenamiento Insertion Sort’ Escribir 'Digite tamaño del vector’ Leer tamanio Dimension vector[tamanio] Para conta_i←1 Hasta tamanio Con Paso 1 Hacer Escribir 'Digite los elementos:’ Leer elemento vector[conta_i]=elemento Fin Para Para conta_i←2 Hasta tamanio Con Paso 1 Hacer temporal←vector[conta_i] conta_j=conta_i-1 Mientras temporal<vector[conta_j] Y conta_j≥1 Hacer vector[conta_j+1]←vector[conta_j] conta_j←conta_j-1 Fin Mientras vector[conta_j]←temporal Fin Para Para conta_i←1 Hasta tamanio Con Paso 1 Hacer Escribir vector[conta_i] Fin Para FinAlgoritmo
  • 25. print('Programa Ordenamiento Insercion Sort') tamanio=int(input('Digite tamaño del vector:')) vector=[] #[15,33,27,10,35,19,42,44] for conta_i in range(0,tamanio): elemento=int(input('Digite elemento:')) vector.append(elemento) print(vector) for conta_i in range(1,tamanio): temporal=vector[conta_i] conta_j=conta_i while temporal<vector[conta_j-1] and conta_j>0: vector[conta_j]=vector[conta_j-1] conta_j=conta_j-1 vector[conta_j]=temporal print(vector)
  • 26. El método de ordenamiento Shell consiste en dividir el arreglo (o la lista de elementos) en intervalos (o bloques) de varios elementos para organizarlos después por medio del ordenamiento de inserción directa. El proceso se repite, pero con intervalos cada vez más pequeños, de tal manera que al final, el ordenamiento se haga en un intervalo de una sola posición, similar al ordenamiento por inserción directa, la diferencia entre ambos es qué, al final, en el método Shell. Su nombre proviene de su creador, Donald Shell. Shell Sort
  • 27. Shell Sort Existen varias formas de calcular el intervalo, lo cual puede mejorar la efectividad del algoritmo. A continuación, explicaremos la secuencia original propuesta por Shell: n/2, n/4…, n/n, es decir, uno (dividir entre dos, hasta que el último intervalo sea uno), donde n es el tamaño del arreglo. Se realiza la ordenación, primero tomando como valor inicial de intervalo 4; es decir, como el número de elementos n es 8, tenemos que n/2 = 4. Podemos decir también que en esta primera interacción dividimos el arreglo en cuatro subarreglos: {15,35}, {33,19}, {27,42} y {10,44}.
  • 28. A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] j v 15 33 27 10 35 19 42 44 Conta_i Conta_j Indice_k Intervalo Tamanio Algoritmo shellsort Escribir 'Programa Ordenamiento Shell Sort’ Escribir 'Digite tamaño del vector’ Leer tamanio Dimension unaLista[tamanio] Definir conta_i,conta_j, conta_k, temporal Como Entero Para conta_i←1 Hasta tamanio Con Paso 1 Hacer Escribir 'Digite elemento del vector:’ Leer elemento unalista[conta_i]=elemento Fin Para intervalo=trunc(tamanio/2) Mientras intervalo>0 Hacer Para conta_i←intervalo Hasta tamanio Con Paso 1 Hacer conta_j←conta_i-intervalo Mientras conta_j≥1 Hacer conta_k←conta_j+intervalo Si unalista[conta_j]≤unalista[conta_k] Entonces conta_j←conta_j-1 SiNo temporal←unalista[conta_j] unalista[conta_j]←unalista[conta_k] unalista[conta_k]←temporal Fin Si Fin Mientras Fin Para intervalo←trunc(intervalo/2) Fin Mientras Para conta_i←1 Hasta tamanio Con Paso 1 Hacer Escribir unalista[conta_i] Fin Para FinAlgoritmo
  • 29. print("Programa Ordenamiento Shell Sort") print("Digite tamaño del vector") tamanio = int(input("Digite tamaño del vector")) unalista = [] for conta_i in range(0,tamanio): elemento = int(input("Digite elemento del vector:")) unalista.append(elemento) intervalo = int(tamanio/2) print(unalista) while intervalo>0: for conta_i in range(intervalo,tamanio+1): conta_j = conta_i-intervalo while conta_j>=1: conta_k = conta_j+intervalo if unalista[conta_j-1]<=unalista[conta_k-1]: conta_j = conta_j-1 else: temporal = unalista[conta_j-1] unalista[conta_j-1] = unalista[conta_k-1] unalista[conta_k-1] = temporal intervalo = int(intervalo/2) print(unalista)
  • 31. ● Es un método que se basa en la división sucesiva del espacio ocupado por el vector en sucesivas mitades, hasta encontrar el elemento buscado. ● Esta búsqueda utiliza un método de “divide y vencerás” para localizar el valor deseado. Con este método se examina primero el elemento central de la lista; si este es el elemento buscado entonces la búsqueda ha terminado. BUSQUEDA BINARIA
  • 32. encontrado=False izquierda=0 derecha=tamanio numeroBuscado=int(input('Digite numero a buscar:')) while not(encontrado) and izquierda<=derecha: medio=int((izquierda+derecha)/2) if numeroBuscado==vector[medio]: encontrado=True elif numeroBuscado<vector[medio]: derecha=medio-1 else: izquierda=medio+1 if encontrado==True: print('Numero encontrado en', str(medio+1)) else: print('Numero no encontrado')
  • 33.