Menu de tres opciones, que rellena un vector, lo ordena por metodo Burbuja y Quicksort (compara sus tiempos), y lo vuelve a generar cuantas veces se necesite experimentar.

uses
	crt,dos;
const
	max=10;
type
	vector=array [1..max] of integer;
var
	opc:char;
	c:integer;
	n:integer;
	qa,ba:vector;
	generado:integer;
	bh1,bm1,bs1,bms1:word;
	bh2,bm2,bs2,bms2:word;
	qh1,qm1,qs1,qms1:word;
	qh2,qm2,qs2,qms2:word;
 
 
procedure mostrar(arreglo:vector);
	var
		c:integer;
		x,y:integer;
	begin
		clrscr;
		x:=1;
		y:=1;
		for c:=1 to max do
			begin
				gotoxy(x,y);            	
				writeln(arreglo[c]);
				if y=23 then
					begin
						if (x<80)AND(x>75) then
							begin
								gotoxy(1,24);write('Presiona una tecla para continuar');
								readkey;
								clrscr;
								x:=1;
								y:=1;
							end
								else
							begin
								x:=x+4;
								y:=1;
							end;
					end
						else
					begin
						y:=y+1;
					end;
			end;
	end;
 
procedure quickredit(ini,fin:integer; var pos:integer);
var
   izq,der,aux:integer;
   band:boolean;
begin
	 izq:=ini;
	 der:=fin;
	 pos:=ini;
	 band:=true;
	 while band=true do
	 begin
		  while (qa[pos]<=qa[der]) and (pos<>der) do
				der:=der-1;
		  if pos=der then
			 band:=false
		  else
			  begin
				   aux:=qa[pos];
				   qa[pos]:=qa[der];
				   qa[der]:=aux;
				   pos:=der;
				   while (qa[pos]>=qa[izq]) and (pos<>izq) do
						 izq:=izq+1;
				   if pos=izq then
					  band:=false
				   else
					   begin
							aux:=qa[pos];
							qa[pos]:=qa[izq];
							qa[izq]:=aux;
							pos:=izq;
					   end;
			  end;
	 end;{while}
end;
 
procedure quickit (v:vector; n:integer);
var
   top,ini,fin,pos:integer;
   pmay,pmen:vector;
begin
	 top:=1;
	 pmen[top]:=1;
	 pmay[top]:=n;
	 while top>0 do
	 begin
		  ini:=pmen[top];
		  fin:=pmay[top];
		  top:=top-1;
		  quickredit(ini,fin,pos);
		  if ini<(pos-1) then
		  begin
			   top:=top+1;
			   pmen[top]:=ini;
			   pmay[top]:=pos-1;
		  end;
		  if fin>(pos+1) then
		  begin
			   top:=top+1;
			   pmen[top]:=pos+1;
			   pmay[top]:=fin;
		  end;
	 end;{while}
end;
 
procedure qsort(arreglo:vector);
	begin
		quickit(arreglo,max);
		for c:=1 to max do
			begin
				ba[c]:=arreglo[c];
				qa[c]:=arreglo[c];
			end;
		{mostrar(arreglo);}
	end;
 
procedure bsort(arreglo:vector);
	var
		c1,c2,aux:integer;
	begin
		for c1:=1 to max do
			for c2:=max downto c1 do
				if arreglo[c2]>arreglo[c2+1] then
					begin
						aux:=arreglo[c2];
						arreglo[c2]:=arreglo[c2+1];
						arreglo[c2+1]:=aux;
					end;
		for c:=1 to max do
			begin
				ba[c]:=arreglo[c];
				qa[c]:=arreglo[c];
			end;
		{mostrar(arreglo);}
	end;
 
begin
	generado:=0;
	repeat
		clrscr;
		writeln('1.- Generar');
		writeln('2.- Ordenar');
		writeln('3.- Ver arreglo');
		opc:=readkey;
		case ord(opc) of
				49:
				begin
					clrscr;writeln('Opcion 1 - Generar');
					for c:=1 to max do
						begin
							randomize;
							ba[c]:=random(999);
							qa[c]:=ba[c];
						end;
					mostrar(ba);
					generado:=1;
					readkey;
				end;
				50:
				begin
					clrscr;writeln('Opcion 2 - Ordenar');
					if generado=1 then
						begin
							gettime(bh1,bm1,bs1,bms1);
							bsort(ba);
							gettime(bh2,bm2,bs2,bms2);
 
							gettime(qh1,qm1,qs1,qms1);
							qsort(qa);
							gettime(qh2,qm2,qs2,qms2);
 
							writeln('Bubble sort: ',bh1,':',bm1,':',bs1,':',bms1,' -> ',bh2,':',bm2,':',bs2,':',bms2);
							writeln('Quick sort: ',qh1,':',qm1,':',qs1,':',qms1,' -> ',qh2,':',qm2,':',qs2,':',qms2);
 
 
 
						end
							else
						begin
							writeln('No hay vector generado');
						end;
					readkey;
				end;
				51:
				begin
					clrscr;writeln('Opcion 3 - Ver arreglo');
					if generado=1 then
							mostrar(ba)
						else
							writeln('No hay vector generado');
					readkey;
				end;
			end;
	until ord(opc)=27;
 
 
end.
{
27 ESC
50 2
49 1
}

¿Has encontrado algún error? ¿Tienes la solución? Dejame tu correción ;-)

Antes de comentar: Gran parte de los ejercicios propuestos no tienen librerías debido a que Wordpress las eliminó al verlas como etiquetas HTML. Si sabes/tienes/conoces las librerías que hacen falta, déjalo en los comentarios. Y lo mas importante: Todos los ejemplos fueron realizados por personas con únicamente conocimiento básico del lenguaje, no de programación.

Otro punto importante: Si vas a sugerir un segmento de código en algún lenguaje debes hacerlo así:

  • Si es lenguaje C [c]Código en C[/c]
  • Si es lenguaje Pascal [pascal]Aquí dentro el código de Pascal[/pascal].

De esta manera el código coloreas el código.

Otro punto importante para muchos que sienten que se les ignora: Todos los comentarios los reviso y en su debido momento los apruebo, pero ojo con el con lo siguiente:

Me reservo el derecho de alterar, publicar o no los comentarios as´ como cambiar mis condiciones en el momento que así lo requiera.

¿estas de acuerdo? entonces adelante que ya te he quitado bastante tiempo leyendo esta basura de advertencias :)