Pascal: Desordenar array
Barajar los datos de un array usando el algoritmo de Fisher-Yates
Lenguaje: Pascal (compilador: Free Pascal 2.4)
Categoría: Tipos de datos
(* Fuente procedente de ErrorDeSintaxis.es *)
(* Barajar los datos de un array usando el algoritmo *)
(* de Fisher-Yates *)
(* Lenguaje: Pascal *)
(* Compilador: Free Pascal 2.4 *)
(* Nivel: Básico *)
(* Disponible desde 20/01/2012 *)
(* Aportado por Nacho *)
(* Autor original: Luis Torres *)
(* Web original: http://www.aprendeaprogramar.com/mod/forum/view.php?id=19 *)
{ Desordenar un array usando el algoritmo de Fisher-Yates} program desordenarArray; var Arreglo: array[1..12] of integer; i,j,aux: integer; begin { Genero y muestro el array inicial } for i:=1 to 12 do begin Arreglo[i]:= i; write(Arreglo[i],' '); end; writeLn; { Desordeno el array } randomize; for i:= 12 downto 2 do begin j:= random(i)+1; aux:= Arreglo[j]; Arreglo[j]:= Arreglo[i]; Arreglo[i]:= aux; end; { Muestro el array desordenado } for i:=1 to 12 do write(Arreglo[i],' '); writeLn; { Pausa para poder leer los resultados } ReadLn; end.
Resultado:
1 2 3 4 5 6 7 8 9 10 11 12 11 5 7 1 2 4 9 8 12 3 6 10