Ordenación de Arrays

Anuncio
ORDENACIÓN DE ARRAYS
En este apartado, estudiaremos los diferentes métodos de ordenación de arrays, teniendo mucha importancia el
tiempo que tarde la función ordenar.
SELECCIÓN DIRECTA
Una vez de obtener un array de valores enteros, seleccionaremos aquel elemento que tenga el valor mínimo,
intercambiando con el primer elemento del array.
Algoritmo:
1−Seleccionar aquel elemento que tenga valor mínimo.
2−Intercambiar con el primer elemento.
Ejemplo:
44 55 12 42 94 18 6 67
6 55 12 42 94 18 44 67
6 12 55 42 94 18 44 67
6 12 18 42 94 55 44 67
6 12 18 42 94 55 44 67
6 12 18 42 44 55 94 67
6 12 18 42 44 55 94 67
6 12 18 42 44 55 67 94
*Los valores que debemos cambiar.
A continuación introduciremos el programa que realiza la selección directa para un array de 5000 elementos.
Analizando en ella también el tiempo que necesita para ordenar dicho array. Mediante el resultado del tiempo
obtenido, compararemos las calidades de los métodos.
PROGRAMA
program sel_dir;
uses crt,dos;
const
lim=5000;
1
type
lista=array [1..lim] of integer;
var
l:lista;
i:integer;
h,m,s,c,h1,m1,s1,c1:word;
procedure ordenar (var l:lista;lim:integer);
var
i,menor,pos2,j,aux:integer;
begin
for i:=1 to lim do
begin
menor:=l[i];
pos2:=i;
for j:=(i+1) to lim do
if (l[j]<menor) then
begin
menor:=l[j];
pos2:=j;
end;
if (menor<>l[i]) then
begin
aux:=l[i];
l[i]:=menor;
l[pos2]:=aux;
end;
2
end;
end;
begin
randomize;
for i:=1 to lim do
l[i]:=random (lim);
gettime (h,m,s,c);
ordenar (l,lim);
gettime (h1,m1,s1,c1);
for i:=1 to lim do
writeln (l[i]);
writeln ('Ha tardado: ',h1−h,':',m1−m,':',s1−s,':',c1−c,' tiempo');
end.
El tiempo invertido el la ordenación de 5000 elementos: 0h:0m:0s:22c
1
2
3
Descargar