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