Sunteți pe pagina 1din 4

Métodos de Ordenamiento

Ordenamiento
Es la operación de arreglar los registros de una tabla en algún orden secuencial
de acuerdo a un criterio de ordenamiento. El ordenamiento se efectúa con base en
el valor de algún campo en un registro. El propósito principal de un ordenamiento
es el de facilitar las búsquedas de los miembros del conjunto ordenado.
El ordenar un grupo de datos significa mover los datos o sus referencias para que
queden en una secuencia tal que represente un orden, el cual puede ser numérico,
alfabético o incluso alfanumérico, ascendente o descendente.

1. ORDENAMIENTO POR SELECCIÓN

DESCRIPCIÓN.
Ø Buscas el elemento más pequeño de la lista.
Ø Lo intercambias con el elemento ubicado en la primera posición de la lista.
Ø Buscas el segundo elemento más pequeño de la lista.
Ø Lo intercambias con el elemento que ocupa la segunda posición en la lista.
Ø Repites este proceso hasta que hayas ordenado toda la lista.

ANÁLISIS DEL ALGORITMO.


Ø Requerimientos de Memoria: Al igual que el ordenamiento burbuja, este
algoritmo sólo necesita una variable adicional para realizar los
intercambios.
Ø Tiempo de Ejecución: El ciclo externo se ejecuta n veces para una lista de
n elementos. Cada búsqueda requiere comparar todos los elementos no
clasificados.

Ventajas:
1. Fácil implementación.
2. No requiere memoria adicional.
3. Rendimiento constante: poca diferencia entre el peor y el mejor
caso.

Desventajas:
1. Lento.
2. Realiza numerosas comparaciones.
//Selection sort
//Codificado por sAfOrAs
#include<iostream>
using namespace std;
#include"leearreglo.h"
#define largo 50
void seleccionsort (int A[], int n)
{
int min,i,j,aux;
for (i=0; i<n-1; i++)
{
min=i;
for(j=i+1; j<n; j++)
if(A[min] > A[j])
min=j;
aux=A[min];
A[min]=A[i];
A[i]=aux ;
}

}
void main ()
{
int A[largo],n;
do{
cout<<"Cantidad de numeros a ingresar: ";cin>>n;
if(n<=0||n>largo)
cout<<"Debe ingresar un valor > a 0 y < a "<<largo<<endl;
}while(n<=0||n>largo);

leeCadena(n,A);
seleccionsort(A,n);
muestraCadena(n,A);

}
1
2
#include<iostream>
3 using namespace std;
4 void leeCadena(int cant,int n[])
5 {
6 int i;
for(i=0;i<cant;i++)
7
{
8 cout<<"Ingresa numero "<<i+1<<": ";
9 cin>>n[i];
10 }
11
12 }
13
14 void
{
muestraCadena(int cant,int n[])
15 int i;
16 for(i=0;i<cant;i++)
17 {
18 cout<<n[i]<<endl;
}
19 }
20
21
5.8. El ordenamiento por selección
El ordenamiento por selección mejora el ordenamiento burbuja haciendo un sólo
intercambio por cada pasada a través de la lista. Para hacer esto, un ordenamiento por
selección busca el valor mayor a medida que hace una pasada y, después de completar la
pasada, lo pone en la ubicación correcta. Al igual que con un ordenamiento burbuja,
después de la primera pasada, el ítem mayor está en la ubicación correcta. Después de la
segunda pasada, el siguiente mayor está en su ubicación. Este proceso continúa y
requiere n−1n−1 pasadas para ordenar los n ítems, ya que el ítem final debe estar en su
lugar después de la (n−1)(n−1)-ésima pasada.
La Figura 3 muestra todo el proceso de ordenamiento. En cada paso, el ítem mayor
restante se selecciona y luego se pone en su ubicación correcta. La primera pasada ubica
el 93, la segunda pasada ubica el 77, la tercera ubica el 55, y así sucesivamente. La
función se muestra en el ActiveCode 1.

Figura 3: ordenamientoPorSeleccion
Figura 3: ordenamientoPorSeleccion
Initialize Run Stop
Beginning Step Forward Step Backward End
Usted habrá notado que el ordenamiento por selección hace el mismo número de
comparaciones que el ordenamiento burbuja y por lo tanto también es O(n2)O(n2). Sin
embargo, debido a la reducción en el número de intercambios, el ordenamiento por
selección normalmente se ejecuta más rápidamente en pruebas de referencia. De hecho,
para nuestra lista, el ordenamiento burbuja hace 20 intercambios, mientras que el
ordenamiento por selección hace sólo 8.
Autoevaluación
Q-2: Suponga que usted tiene que ordenar la siguiente lista de números: [11, 7, 12,
14, 19, 1, 6, 18, 8, 20] ¿Cuál de las siguientes listas representa la lista
parcialmente ordenada tras tres pasadas completas del ordenamiento por
selección?

 [7, 11, 12, 1, 6, 14, 8, 18, 19, 20]


 El ordenamiento por selección es similar al ordenamiento burbuja (el cual parece
que usted usó) pero usa menos intercambios
 [7, 11, 12, 14, 19, 1, 6, 18, 8, 20]
 Este resultado parece de un ordenamiento por inserción.
 [11, 7, 12, 14, 1, 6, 8, 18, 19, 20]
 Este resultado se parece a la respuesta correcta pero en lugar de intercambiar los
números, estos se han desplazado a la izquierda para dar cabida a los números
correctos.
 [11, 7, 12, 14, 8, 1, 6, 18, 19, 20]
 El ordenamiento por selección mejora el ordenamiento burbuja ya que hace menos
intercambios.

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