Ordenación de Arrays

Informática. Selección directa. Programa. Métodos

  • Enviado por: El remitente no desea revelar su nombre
  • Idioma: castellano
  • País: España España
  • 2 páginas
publicidad
publicidad

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;

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;

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