Racius tu mal taky problem, ze nevedel ako ma urobit taky program.
Tak malo by to byt asi takto...
program triedenie;
uses crt;
var K,N,I,V,c:integer;
A:array[1..100] of integer;
begin
clrscr;
RANDOMIZE;
writeln('zadaj pocet prvkov');
readln(N);
FOR K:=1 TO N DO
A[K]:=RANDOM(101);
writeln('povodne pole bolo ');
FOR I:=1 TO N DO
write(A:4);
writeln;
I:=1;
REPEAT
V:=0;
FOR K:=1 TO N-I DO
IF A[K]>A[K+1] THEN
begin
c:=A[K];
A[K]:=A[K+1];
A[K+1]:=c;
V:=1;
end;
UNTIL V=0;
writeln('usporiadane pole je ');
FOR K:=1 TO N DO
write(A[K]:4);
readln;
end.
Mozte to hned zamknut ...kto bude potrebovat, sa na to iba pozre...program funguje
program triedenie;
uses
crt;
var
k,n,i,v,c:integer;
A:array[1..100] of integer;
begin
clrscr;
randomize;
writeln('zadaj pocet prvkov');
readln(n);
for k:=1 to n do
a[k]:=random(101);
writeln('povodne pole bolo ');
for i:=1 to n do
write(A[I]:4);
writeln;
for i :=1 to n-1 do
begin
for k := i+1 to n do
begin
if a[i] > a[k] then
begin
c := a[i];
a[i] := a[k];
a[k] := c;
end;
end;
end;
writeln('usporiadane pole je ');
for k:=1 to n do
write(a[k]:4);
readln;
end.
chrono: Na programovani je uzasne to, ze jeden problem ma vela rieseni a zavisi len od programatora ako ho vyriesi...Oba programi riesia ten isty problem cca rovnako a aj s cca rovnakou efektivnostou
Ja to pouzivam len pre skolske potreby...takze bohate staci...
Ale nikdy som nerozmyslal o prerobeni toho mojho...ale uz som to urobil..ten tvoj sa mi paci viac
Dakujem
Ano ja viem ale taky by mal byt uplny bubble sort, teda podla mna.
No ano ale kedze ide o princip toho usporiadania tak neviem ale myslim si ze by mal kazdy prvok bublat s kazdym aj so sebou samym. teraz nemysim na rychlost prevedenia.
juho napísal:Ano ja viem ale taky by mal byt bubble sort, teda podla mna.
a podľa všetkých ostatných programátorov a múdrych kníh by mal byť algorytmus čo najefektívnejší
trošku by si mal staviť aj na učenie a nie len na to že ťa niečo napadne a myslíš že tvoje riešenie je lepšie ako osvedčené praktiky. Bubble sort je najjednoduchší typ triedenia a aj v ňom spraviť takéto zverstvá?
juho napísal:Ano ja viem ale taky by mal byt uplny bubble sort, teda podla mna.
No ano ale kedze ide o princip toho usporiadania tak neviem ale myslim si ze by mal kazdy prvok bublat s kazdym aj so sebou samym. teraz nemysim na rychlost prevedenia.
Ten "môj" algoritmus funguje tak, že najskôr "prebuble" najvyššie číslo na prvé miesto. Potom druhá najvyššie na druhé miesto...
To čo tam máš ty, by aj tak nerobilo nič navyše oproti tomu môjmu (okrem zbytočných kontrol už zotriedených častí).
var changed : boolean;
for i :=1 to n-1 do
begin
changed := false;
for k := i+1 to n do
begin
if a[i] > a[k] then
begin
changed := true;
c := a[i];
a[i] := a[k];
a[k] := c;
end;
end;
if (not(changed)) then break;
end;
var changed : boolean;
for i :=1 to n-1 do
begin
changed := false;
for k := i+1 to n do
begin
if a[i] > a[k] then
begin
changed := true;
c := a[i];
a[i] := a[k];
a[k] := c;
end;
end;
if (not(changed)) then break;
end;
Aby algoritmus netriedil uz zotriedene pole...
v podstate to iste co mam ja hned v tom prvom programe
programator napísal:Ale s for cyklami je to urcite prehladnejsie a aj trosku rychlejsie... Ale ajtak sa bubble sort pouziva v poliach tak do 50 riadkov.
to je jasne..inak je to neefektivne..my sme sa to ucili, ako vseobecny prehlad...a len na male polia...
PS.za 2 tyzdne z toho maturuje...lol