Çàî÷íîå äèñòàíöèîííîå îáðàçîâàíèå ñ ïîëó÷åíèåì ãîñóäàðñòâåííîãî äèïëîìà ÷åðåç Internet










Ïîëó÷èòü èíôîðìàöèþ î ïîñòóïëåíèè
 
Ãëàâíàÿ Íîâîñòè Êàðòà ñàéòà Ôîòîàëüáîì Ãîñòåâàÿ êíèãà Êîíòàêòû

 

Ëèíåéíàÿ ñîðòèðîâêà (ñîðòèðîâêà îòáîðîì)

Èäåÿ ëèíåéíîé ñîðòèðîâêè ïî íåâîçðàñòàíèþ çàêëþ÷àåòñÿ â òîì, ÷òîáû ïîñëåäîâàòåëüíî ïðîñìàòðèâàÿ âåñü ìàññèâ, îòûñêàòü íàèáîëüøåå ÷èñëî è ïîìåñòèòü åãî íà ïåðâóþ ïîçèöèþ, îáìåíÿâ åãî ñ ýëåìåíòîì, êîòîðûé ðàíåå çàíèìàë ïåðâóþ ïîçèöèþ. Çàòåì ïðîñìàòðèâàþòñÿ âñå îñòàëüíûå ýëåìåíòû ìàññèâà è âûïîëíÿåòñÿ àíàëîãè÷íàÿ îïåðàöèÿ ïî îòáîðó èç ðàññìàòðèâàåìîé ÷àñòè ìàññèâà ìàêñèìàëüíîãî ýëåìåíòà è îáìåíó ìåñòàìè ýòîãî ýëåìåíòà è ïåðâîãî â ðàññìàòðèâàåìîé ÷àñòè, è ò. ä.

Ââåäåì â ðàçäåëå îïèñàíèÿ ñëåäóþùèå öåëûå ïåðåìåííûå:

I – äëÿ óêàçàíèÿ ïîçèöèè ïåðâîãî ýëåìåíòà â ðàññìàòðèâàåìîé ÷àñòè ìàññèâà;

J – äëÿ óêàçàíèÿ ïîçèöèè î÷åðåäíîãî ñðàâíèâàåìîãî ñ íèì ýëåìåíòà;

N – äëÿ âðåìåííîãî õðàíåíèÿ çíà÷åíèÿ ïåðâîãî ýëåìåíòà äëÿ îáìåíà çíà÷åíèÿìè ñ ìàêñèìàëüíûì èç ðàññìàòðèâàåìîé ÷àñòè ìàññèâà;

L – ïàðàìåòð öèêëà ïðè âûâîäå òåêóùåãî çíà÷åíèÿ ýëåìåíòîâ ìàññèâà â ïðîöåññå ñîðòèðîâêè äëÿ îòñëåæèâàíèÿ ïðîèñõîäÿùèõ â ìàññèâå èçìåíåíèé;

À – ïåðåìåííàÿ, çíà÷åíèå êîòîðîé áóäåò ðàâíî ÷èñëó ïåðåñòàíîâîê ýëåìåíòîâ.

Âûâîä èñõîäíîãî ìàññèâà íà ýêðàí çàïèøåì ñëåäóþùèì îáðàçîì:

Writeln('Èñõîäíûé ìàññèâ: ');
for I := 1 to Count do
Write( ', M[I]);
Writeln;

Ïåðåä íà÷àëîì ñîðòèðîâêè óñòàíîâèì çíà÷åíèå ñ÷åò÷èêà èòåðàöèé À ðàâíûì 0. Äëÿ ñîðòèðîâêè îðãàíèçóåì äâà öèêëà for: âíåøíèé öèêë ñ ïàðàìåòðîì I, óêàçûâàþùèì ïîçèöèþ ïåðâîãî ýëåìåíòà â íåîòñîðòèðîâàííîé ÷àñòè ìàññèâà, è âíóòðåííèé öèêë ñ ïàðàìåòðîì J, óêàçûâàþùèì ïîçèöèþ î÷åðåäíîãî, ñðàâíèâàåìîãî ñ ïåðâûì, ýëåìåíòà íåîòñîðòèðîâàííîé ÷àñòè ìàññèâà. Ñðàâíåíèå ýëåìåíòîâ çàïèøåì ïðè ïîìîùè îïåðàòîðà:

if M[I] < M[J] then begin
N := M[I];
M[I] := M[J];
M[J] := N;
end;

Åñëè óñëîâèå M[I] < M[J] âûïîëíÿåòñÿ, ò. å. â íåîòñîðòèðîâàííîé ÷àñòè ìàññèâà íàéäåí ýëåìåíò, áîëüøèé ïåðâîãî, òî ñëåäóåò ïîìåíÿòü ìåñòàìè ýòè ýëåìåíòû. Ïåðåñòàíîâêà îñóùåñòâëÿåòñÿ ñëåäóþùèì îáðàçîì: ñíà÷àëà çíà÷åíèå Ì[1] çàïîìèíàåòñÿ â ïåðåìåííîé N, çàòåì çíà÷åíèå ýëåìåíòà ìàññèâà èç J-é ïîçèöèè çàïèñûâàåòñÿ â 1-þ ïîçèöèþ, à ïîñëå ýòîãî â J-þ ïîçèöèþ ìàññèâà çàïèñûâàåòñÿ çíà÷åíèå ïåðåìåííîé N. Äëÿ îòñëåæèâàíèÿ èçìåíåíèé ñîñòîÿíèÿ ìàññèâà ïîñëå êàæäîé ïåðåñòàíîâêè çàäàäèì öèêë âûâîäà çíà÷åíèé âñåõ ýëåìåíòîâ ìàññèâà è íàïå÷àòàåì òåêóùåå çíà÷åíèå ÷èñëà ïåðåñòàíîâîê ýëåìåíòîâ À:

for L := 1 to Count do
Write(', M[L]);
Writeln( '×èñëî èòåðàöèé=', À);

Ïîëíûé òåêñò ïðîãðàììû ëèíåéíîé ñîðòèðîâêè ìàññèâà Ì ïî íåâîçðàñòàíèþ ìîæåò áûòü çàïèñàí ñëåäóþùèì îáðàçîì:

program Sort_Lin; {Ëèíåéíàÿ ñîðòèðîâêà ïî íåâîçðàñòàíèþ} const
Count = 20;
Ì:àããàó [1..Count] of byte=(9.11,12,3.19,1.5,17,10.18.3,19,17.9. 12.20,20,19,2,5);
var
I, J, N. L : Byte;
A : integer;
begin
Writeln('Èñõîäíûé ìàññèâ: ');
for I := 1 to Count do Write( ', M[I]);
Writeln;
A:=0;
for I := 1 to Count - 1 do {Èçìåíÿòü ðàçìåð íåîòñîðòèðîâàííîé ÷àñòè ìàññèâà}
for J:=I+1 to Count do {Ñðàâíèâàåì ïîî÷åðåäíî 1-é ýëåìåíò íåîòñîðòèðîâàííîé ÷àñòè ìàññèâà ñî âñåìè îò I+1-ãî äî êîíöà}
begin
À:=À+1;
if M[I] < M[J] then {Åñëè â íåîòñîðòèðîâàííîé ÷àñòè ìàññèâà íàøëè ýëåìåíò. áîëüøèé, ÷åì 1-é, òî îáìåíÿòü èõ ìåñòàìè}
begin
N := Ì[1]; {Çàïîìíèòü íà âðåìÿ çíà÷åíèå Ì[1]}
M[I] := M[J];
M[J] := N;
end;
for L := 1 to Count do
Write(M[L]);
Writeln('×èñëî èòåðàöèé -',À);
end;
end.

Çàïóñòèòå èíòåãðèðîâàííóþ ñðåäó ïðîãðàììèðîâàíèÿ. Ââåäèòå òåêñò ïðîãðàììû Sort_Lin è çàïèøèòå ôàéë íà äèñê ïîä ñîîòâåòñòâóþùèì èìåíåì, à çàòåì îòêîìïèëèðóéòå åãî. Ïîñëå óñïåøíîãî çàâåðøåíèÿ êîìïèëÿöèè çàïóñòèòå ïðîãðàììó, îòñëåæèâàÿ â ïîøàãîâîì ðåæèìå òåêóùèå çíà÷åíèÿ ïåðåìåííûõ: I, J, N, M[I], M[J], à òàêæå ïðîñìàòðèâàÿ íà ýêðàíå ïîëüçîâàòåëÿ ðåçóëüòàò èçìåíåíèÿ ìàññèâà çà îäèí ïðîõîä âíóòðåííåãî öèêëà. Ïî ïîñëåäíåìó çíà÷åíèþ À ìîæíî îïðåäåëèòü, ÷òî äëÿ äàííîãî ìàññèâà ëèíåéíàÿ ñîðòèðîâêà ïî íåâîçðàñòàíèþ âûïîëíÿåòñÿ çà 190 èòåðàöèé.



 
     
   
 


Ïðèãëàøàåì ïðèíÿòü ó÷àñòèå â êðóãëîì ñòîëå!
ïîäðîáíåå   >>>
 

Èíñòèòóò Ìåíåäæìåíòà, Ýêîíîìèêè è Èííîâàöèé íà÷èíàåò íàáîð íà êóðñû ïîâûøåíèÿ êâàëèôèêàöèè!
ïîäðîáíåå   >>>
 

Óâàæåìûå ñòóäåíòû ÀÍÎ ÂÏÎ ÈÌÝèÈ!
ïîäðîáíåå   >>>
 

Íà÷èíàåòñÿ íàáîð íà êóðñû ïîâûøåíèÿ êâàëèôèêàöèè!
ïîäðîáíåå   >>>
 

Ïðèãëàøàåì ïðèíÿòü ó÷àñòèå â êîíôåðåíöèÿõ!
ïîäðîáíåå   >>>
 


âñå íîâîñòè...

 


Ðàññûëêè Subscribe.Ru
Ñîâðåìåííîå îáðàçîâàíèå
Ïîäïèñàòüñÿ ïèñüìîì