Sunteți pe pagina 1din 8

Métodos de ordenamiento

Ordenación de listas y búsqueda de un elemento

Se utiliza para ordenar el vector o lista

La ordenación puede ser;

Ascendente; los elementos están situados desde A-Z ó 0-9 y distingue mayúsculas y
minúsculas.

Descendente; es de forma inversa a la Ascendente de la Z-A ó 9-0

Los vectores repetidos quedan en posiciones continuas

Los métodos de ordenación sirven tanto para los vectores numéricos como alfanuméricos

Método de la burbuja; lleva el vector máximo a la ultima posición.

Ejemplo

1 3 2 4 5 6 7 8

Inicio

i=1

Mientras i<=i

J=I

Mientras j <=n-i

Si [J]>[J+1]

Aux=[J]

[J]=[J+1]

[J+1]=Aux

Fin si

J=J+1

Fin mientras

i=i+1
fin mientras

fin programa

Método del switch ; nos permite conocer si el vector esta o no ordenado y se comparan 2 a 2, y
puede suceder que;

• Producir intercambio de elementos; A un no esta ordenada


• No produzca ningún cambio; La lista esta ordenada

Ejemplo

N=numero de elementos

i=Recorre el vector desde 1 hasta n-1

aux=realiza intercambio de elementos

sw=verifica si ya esta ordenada ó aun no

inicio

sw=1

mientras sw <> 0

i=1

sw=0

mientras i <=n-1

si [ j ] > [ j+1 ]

aux=[i]

[ j ] = [i+1]

[ i +1] = aux

Sw=1

Fin si

i=i+1

fin mientras

fin mientras
fin programa

Método de la borbuja-switch; es una mezcla entre borbuja y switch

• Borbuja; mejora el no tener que seguir haciendo comparaciones si queda ordenada


• Switch; mejora el no tener que comparar siempre hasta el ultimo elemento

Ejemplo

n=numero de elementos de la lista

i=contador de etapas, en cada una de ellas desde 1 hastan-1

j=contador de comparaciones desde 1 hasta n-i

aux=auxiliar para Realizar el intercambio de los elementos

sw=permite conocer si la lista ya esta ordenada

inicio

i=1

sw=1

mientras i <=n-1 and sw <>0

sw=0

j=1

mientras j <= n-1

si [ j ] > [ j+1]

aux=[ j]

[ j] = [ j+1]

[ j+1] = aux

Sw=1

Fin si

j=j+1

fin mientras

i=i+1
fin mientras

fin programa

Método Shell; esta basado en la ordenación por inserción, donde se ordena los elementos que
están separados por una distancia de comparación.

Inicio

Salto=int(n/2)

Mientras salto >=1

sw=1

mientras sw <>0

sw=0

i=1

mientras i <=(n-salto)

si [ j] > [ i+salto]

aux=[ i+salto]

[ i+salto] =[ i]

[ i] = aux

sw=1

fin si

i=i+1

fin mientras

fin mientras

salto=int(salto/2)

fin programa
Método de ordenamiento por mezclas; se dispone de 2 listas ordenadas A y B, se desea construir
una nueva lista C. Detal forma que quede ordenada. Cuyos elementos sea de A y B. y si hay algún
elemento de A y B repetido, en C solo aparecerá una vez

Método por inserción; ordena y recorre la lista hasta dar con la posición adecuada del elemento.

Se necesitan 2 variables;

Una para recorrer la lista desde la posición 2 hasta la última.

La otra para ir desde la posición actual hacia las posiciones inferiores con el fin de encontrar el
lugar adecuado al elemento

Ejemplo

inicio

i=2

mientras i <=n

j=i

mientras j <( j-1) and j >=2

aux = ( j )

( j ) = ( j-1 )

( j-1 ) = aux

J=j-1

Fin mientras

I=i+1

Fin mientras

Fin programa
Método de ordenación por el mínimo; guarda la posición del mínimo, coincide con el numero de
la etapa

Dentro de cada etapa las comparaciones se realizan desde el elemento que ocupa la posición
etapa + 1 hasta el último número.

Ejemplo

posmin=guarda la posición del mínimo, coincide con el numero de la etapa

inicio

i=1

mientras i <=n-1

posmin = i

j = i+1

mientras j <=n

si ( j ) < ( posmin )

posmin = j

fin si

j=j+1

fin mientras

aux = ( posmin )

posmin = i

i = aux

i=i+1

fin mientras

fin programa
Búsqueda de un elemento; consiste en buscar si un elemento esta en el vector y cual es la
posición que ocupa.

En un arreglo hay diversos métodos para buscar un elemento:

Búsqueda lineal; busca arreglos ordenados y desordenados

Búsqueda binaria; solo busca arreglos ordenados también llamada dicotómica

Ejemplo

i=nombre del arreglo

n=numero de elementos

nombre=dato a buscar

m=variable para encontrar posición

sup=posición superior

inf=contiene la posición inferior

sw=salir del ciclo o bucle

inicio

imprima “dato a buscar”

lea dato

inf=1

sup=1

m=int((sup + inf)/2)

sw=0

mientras inf < sup and sw = 0

si[m] = nombre

imprima “esta en la posición” ,m

sw=1

si no
si [m] > nombre

sup=m-1

si no

inf=m+1

fin si

finsi

m=int((sup + inf)/2)

fin mientras

si sw=0

si [m] = nombre

imprima “esta en la posición” ,m

si no

imprima “no esta”

fin si

fin si

fin programa

S-ar putea să vă placă și