Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program insertsort;
- uses crt, DOS;
- const N=100000;
- type
- tab1 = array [1..N] of integer;
- var
- t1,t2: tab1;
- hour,minute,second,sec100,hour1,minute1,second1,sec1001 : Word;
- procedure Fill();
- var
- i : integer;
- begin
- randomize;
- for i:=1 to N do t1[i]:=random(100000);
- end;
- procedure Copy();
- var
- i : integer;
- begin
- for i:=1 to N do
- begin
- t2[i]:=t1[i];
- end;
- end;
- procedure Print(t1 : tab1);
- var
- i : integer;
- begin
- for i:=1 to N do write(t1[i]:3,'|');
- writeln;
- end;
- procedure Czas();
- begin
- write('Czas wykonania sortowania: ');
- write(sec1001+second1*100+minute1*6000+hour*360000-hour*360000-minute*6000-second*100-sec100);
- writeln(' setnych sekundy');
- end;
- procedure Sort(); //sortowanie przez wstawienie
- var
- j,x,i : integer;
- begin
- gettime(hour,minute,second,sec100);
- for j:=N-1 downto 1 do
- begin
- x:=t1[j];
- i:=j+1;
- while (i<=N) and (x>t1[i]) do
- begin
- t1[i-1]:=t1[i];
- inc(i);
- end;
- t1[i-1]:=x;
- //Print(t1);
- end;
- gettime(hour1,minute1,second1,sec1001);
- Czas();
- end;
- procedure Sort_2(); //sortowanie przez wstawienie polowkowe
- var
- j,x,i,ip,ik : integer;
- begin
- gettime(hour,minute,second,sec100);
- for j:=N-1 downto 1 do
- begin
- x:=t2[j];
- ip:=j;
- ik:=N+1;
- while ik-ip>1 do
- begin
- i:=(ip+ik) div 2;
- if x<=t2[i] then ik:= i else ip:=i;
- end;
- for i:=j to ip-1 do t2[i]:=t2[i+1];
- t2[ip]:=x;
- //Print(t2);
- end;
- gettime(hour1,minute1,second1,sec1001);
- Czas();
- end;
- begin
- Fill;
- Copy;
- //Print(t1);
- readln;
- Sort;
- //readln;
- Sort_2;
- readln;
- end.
Advertisement
Add Comment
Please, Sign In to add comment