Podemos trabajar de dos formas para tener una tabla ordenada:
1) A medida que vamos insertando el
contenido lo vamos ordenando.
2) Una vez que tenemos la tabla
introducida, ordenarla.
Forma 1: Ordenar tabla a medida que la vamos introduciendola:
Explicacion en Pseudocódigo:
num=0
c=0
tabla[20]=valor.maximo
mientras c<20
num=pedirnum(“pedirnumero”)
/*
determinar cual es su posicion: pos
*/
// con tabla[c]=num
// no vale... tenemos que determinar la posicion de colocarlo
c++
fin mientras
La c indica la posicion del elemento, por lo tanto tenemos que determinar pos
a) determinar pos: (en sentido de menor a mayor T[pos]<num)
pos=0
mientras T[pos]<num Y pos<19
pos++
finmientras
Tenemos
que aplicar un método para indicar la posicion nueva ordenada,
y no nos es util la variable c
b) Ahora inserto el numero:
todos los numeros de la tabla los tengo
que desplazar hacia atrás (1 posicion hacia la derecha):
indice=9
mientras
indice>pos
tabla[indice]=tabla[indice-1]
indice--
finmientras
tabla[pos]=num
Ejemplo Completo:
Cargar una tabla ordenada de menor a
mayor de 20 elementos:
<inicio>
tabla[20]
=Valor.Maximo // tabla de datos, para ordenar de menor a mayor
pos=0
mientras
contador<20
num=Pedir(“Introduce
Numero:”)
'determinar pos
pos=0
comprobarlista=0
//determinar la posicion
pos=0
mientras
T[pos] < num Y pos<19
pos++
fin mientras
//traslado lista
de numeros existente desde pos hasta el ultimo numero:
indice=19
mientras
indice>pos
tabla[indice]=tabla[indice-1]
indice--
finmientras
tabla[pos]=num
contador++
finmientras
'escribe numeros
de la tabla ordenada
contador=0
mientras
contador<20
Escribe
“Numero:”, tabla[contador]
contador++
finmientras
<fin>
No hay comentarios:
Publicar un comentario