Witam
czy mógłbym mi ktoś wytłumaczyć jak to zrobić ??
0
0
Przecież w samym tytule wytłumaczono!
Dwie już posortowane kolejki łączysz w jedną.
Co do samego sortowania to albo klasyczny Merge albo ten dziwaczny algorytm do sortowania na plikach opisany u Cormen'a
0
Mam już takie coś ale nadal nie wiem czy to jest dobrze
program sortowanie;
uses crt;
type
wskaznik=^element;
element=record
dana:integer;
dana2:integer;
dana3:integer;
next:wskaznik;
end;
var
head,head2,head3,tail:wskaznik;
i,c:byte;
ne,nu:integer;
procedure enqueue(var h,t:wskaznik; a:integer);
var
nowy:wskaznik;
begin
new(nowy);
nowy^.dana:=a;
nowy^.next:=nil;
if (h=nil) then
begin
h:=nowy;
t:=h;
end
else
begin
t^.next:=nowy;
t:=t^.next;
end;
end;
procedure printqueue(h:wskaznik);
var
temp:wskaznik;
begin
temp:=h;
if (h = nil) then
writeln('Kolejka jest pusta.')
else
begin
while (h <> nil) do
begin
write(h^.dana,#32);
h:=h^.next;
end;
writeln;
end;
end;
procedure sortuj(h:wskaznik);
var
i,j,k,l:byte;
temp,t,w:wskaznik;
begin
k:=2;
l:=4;
temp:=h;
repeat
for i:=1 to 8 do
if i<5 then
begin
t^.dana2:=h^.dana;
h:=h^.next;
t:=t^.next;
end
else
begin
t^.dana3:=h^.dana;
h:=h^.next;
t:=t^.next;
end;
h:=temp;
t:=temp;
w:=temp;
for i:=1 to l do
for j:=1 to k do
begin
if h < t then
begin
w^.dana:=h^.dana2;
w:=w^.next;
w^.dana:=t^.dana3;
end
else
begin
w^.dana:=t^.dana3;
w:=w^.next;
w^.dana:=h^.dana2;
end;
h:=h^.next;
t:=t^.next;
end;
k:=k*21;
l:=l-2;
until k<>16;
end;
procedure dequeue(var h:wskaznik; var a:integer);
var
temp:wskaznik;
begin
temp:=h^.next;
a:=h^.dana;
dispose(h);
h:=temp;
end;
begin
clrscr;
ne:=8;
randomize;
writeln('Losowe 8 elementow do posortowania:');
for i:=1 to ne do
begin
nu:=random((10)+1);
enqueue(head,tail,nu);
end;
printqueue(head);
readln;
sortuj(head);
writeln;
writeln('Posortowane elementy:');
printqueue(head);
readln;
writeln;
writeln('Niszczenie kolejki...');
while head<>nil do
begin
dequeue(head,nu);
writeln(nu);
end;
writeln;writeln('Koniec.');
end.
Prosiłbym o poprawienie jeśli są jakieś błędy
dodanie znacznika <code class="pascal"> - furious programming
0
Zacznij od uwzględnienia formatowania i wstawienia kodu w odpowiednie znaczniki.
0
Ile byś chciał za wykonanie całego programu ??
Zrobiłbym go sam ale na jutro mam go oddać a nie za bardzo to ogarniam :(