Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porSeve Galicia Modificado hace 9 años
1
Definición: Reorganizar un conjunto dado de objetos en una secuencia especificada Objetivo: Facilitar la búsqueda de los elementos del conjunto ordenado Métodos de ordenación
2
Los métodos óptimos para ordenar un número pequeño de elementos: –Ordenación por selección –Ordenación por insercción directa –Ordenación mediante el método de la burbuja Utilizan un sola tabla Para ordenar valores grandes existen mejoras de estos tres métodos Métodos de ordenación
3
Ordena una tabla de n elementos en n-1 iteracciones –Inicialmente no hay posiciones ordenadas –En cada iteracción se ordena una nueva posición de la tabla –En la iteración i se habrán ordenado las i primeras posiciones de la tabla Ordenación por selección
4
Operaciones básicas: –Selecciona el elemento con clave mínima –Intercambio con el primer elemento, a 1 Se repiten estas operaciones con los elementos n-1, n-2,..., restantes hasta que quede un único elemento, que queda ya ordenado Ordenación por selección
5
Posición inicial 95 3 1 83 75 |----------------| Primera iteración 1 3 95 83 75 Se ordena la primera posición –Se busca el mínimo entre todos los elementos –Se intercambian el primer valor y el valor mínimo Ordenación por selección
6
Primera iteración 1 3 95 8375 Segunda iteración 1 3 95 83 75 Se ordena la segunda posición –Se busca el mínimo entre los elementos que están entre la segunda y la última posición –No se realiza ningún cambio, porque el valor mínimo es el que está en la posición a ordenar Ordenación por selección
7
Segunda iteración 1 3 95 83 75 |------------------| Tercera iteración 1 3 75 83 95 Se ordena la tercera posición –Se busca el mínimo entre los elementos que están entre la tercera y la última posición –Se intercambia el valor de la tercera posición y el valor mínimo Ordenación por selección
8
Tercera iteración 1 3 95 83 75 Cuarta iteración 1 3 75 83 95 Se ordena la cuarta posición –Se busca el mínimo entre los elementos que están entre la cuarta y la última posición – No se realiza ningún cambio, porque el valor mínimo es el que está en la posición a ordenar La última posición queda ordenada Ordenación por selección
9
Posición inicial 95 3 1 83 75 |----------------| Primera iteración 1 3 95 83 75 Segunda iteración 1 3 95 83 75 |------------------| Tercera iteración 1 3 75 83 95 Cuarta iteración 1 3 75 83 95 Ordenación por selección
10
para j en [1..n-1] hacer “ asignar a jmin el índice correspondiente al elemento con clave mínima de a j.. a n ” “ intercambiar a j y a jmin “ fpara Ordenación por selección ALGORITMO GENERAL
11
algoritmo Ordenación const N: entero = 25 fconst tipos vector = tabla [1..N] de entero ftipos var v: vector; j, jmin, aux: entero fvar
12
para j en [1.. n-1] hacer jmin := j para k en [j+1.. n] hacer si v[k] < v[jmin] entonces jmin := k fsi fpara si jmin > j entonces aux := v[jmin]; v[jmin] := v[j]; v[j] := aux fsi fpara falgoritmo
13
const Num: entero = 25 fconst tipos vector = tabla [1..Num] de entero ftipos Ordenación por selección
14
acción Ord_selección (e/s a: vector, ent n: entero) var j, jmin: entero fvar para j en [1.. n-1] hacer jmin := Mínimo ( a, j, n) si jmin > j entonces Intercambiar (a, j, jmin) fsi fpara facción Ordenación por selección
15
función Mínimo (ent a: vector, ent j, n: entero) retorna entero var k, min: entero fvar min := j para k en [j+1.. n] hacer si a[k] < a[min] entonces min := k fsi fpara retorna min ffunción Ordenación por selección
16
acción Intercambiar (e/s a: vector, ent j, k: entero) var aux: entero fvar aux := a[j] a[j] := a[k] a[k] := aux facción Ordenación por selección
17
algoritmo Ordenación_palabras const Numc: entero = 25 Nump: entero = 100 fconst tipos tpalabra = tabla [1..Nump] de palabra palabra = tabla [1..Numc] de carácter ftipos Ordenación por selección
18
algoritmo Ordenación_palabras Definición de tipos var tp: tpalabra j, dim : entero fvar LeerPalabras ( tp, dim) Ord_selección ( tp, dim ) EscribirPalabras ( tp, dim) falgoritmo Ordenación por selección
19
acción Ord_selección (e/s tp:tpalabra, ent n:entero) var j, jmin: entero fvar para j en [1.. n-1] hacer jmin := Mínimo(tp, j, n) si jmin > j entonces Intercambiar (tp, j, jmin) fsi fpara facción Ordenación por selección
20
función Mínimo (ent tp:tpalabra, ent j, n:entero) retorna entero var k, min: entero fvar min := j para k en [ j+1.. n] hacer si tp[k] < tp[min] entonces min := k fsi fpara retorna min ffunción Ordenación por selección
21
acción Intercambiar(e/s tp:tpalabra, ent j,k :entero) var aux: palabra fvar aux := tp[j] tp[j] := tp[k] tp[k]:= aux facción Ordenación por selección
22
acción LleerPalabras(sal tp:tpalabra,sal n:entero) n := 1 tp[n] := LeerPalabra() mientras tp[n] != "." hacer n := n+1 tp[n] := LeerPalabra() fmientras n := n-1 facción Ordenación por selección
23
acción EscribirPalabras (ent tp:tpalabra, ent n:entero) var j : entero fvar para j en [1.. n] hacer EscribirPalabra (tp[j]) fpara facción Ordenación por selección
24
const Numc: entero = 25 Nump: entero = 100 fconst tipos tpersona = tabla [1..Nump] de persona persona = tupla dni, edat : entero apellido1,apellido2 : palabra ftupla palabra = tabla [1..Numc] de carácter ftipos Ordenación por selección
25
algoritmo Ordenación_personas Definición de tipos var tp: tpersona j, dim : entero fvar LeerPersonas ( tp, dim) Ord_selección ( tp, dim ) EscribirPersonas ( tp, dim) falgoritmo Ordenación por selección
26
acción Ord_selección (e/s tp:tpersona, ent n:entero) var j, jmin: entero fvar para j en [1.. n-1] hacer jmin := Mínimo(tp, j, n) si jmin > j entonces Intercambiar (tp, j, jmin) fsi fpara facción Ordenación por selección
27
función Mínimo (ent tp:tpersona, ent j, n:entero) retorna entero var k, min: entero fvar min := j para k en [ j+1.. n] hacer si tp[k].apellido1 < tp[min].apellido1 o (tp[k].apellido1 = tp[min].apellido1 i tp[k].apellido2 < tp[min].apellido2) entonces min := k fsi fpara retorna min ffunción Ordenación por selección
28
acción Intercambiar(e/s tp:tpersona, ent j,k :entero) var aux: persona fvar aux := tp[j] tp[j] := tp[k] tp[k]:= aux facción Ordenación por selección
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.