Сортировка 1. Реализовать алгоритм сортировки пузырьком

advertisement
Ñîðòèðîâêà
1. Ðåàëèçîâàòü àëãîðèòì ñîðòèðîâêè ïóçûðüêîì, ñîñòîÿùèé â ñëåäóþùåì. Äåëàåòñÿ n (ðàçìåð ìàññèâà) ïðîõîäîâ,
íà êàæäîì èç êîòîðûõ ïîñëåäîâàòåëüíî ïðîñìàòðèâàþòñÿ ïàðû ñîñåäíèõ ýëåìåíòîâ, è åñëè èõ ïîðÿäîê íåïðàâèëåí,
îíè ìåíÿþòñÿ ìåñòàìè. Ïðåäëîæèòü è ðåàëèçîâàòü óëó÷øåíèÿ ê ýòîìó àëãîðèòìó.
2. Ðåàëèçîâàòü àëãîðèòì ñîðòèðîâêè îòáîðîì, ñîñòîÿùèé â ñëåäóþùåì. Â èñõîäíîì ìàññèâå èùåòñÿ íàèìåíüøèé
ýëåìåíò è îí ìåíÿåòñÿ ìåñòàìè ñ ïåðâûì ýëåìåíòîì ìàññèâà. Çàòåì ïðîöåññ ïîâòîðÿåòñÿ äëÿ ïîäìàññèâà, íà÷èíàþùåãîñÿ ñî âòîðîãî ýëåìåíòà, çàòåì ñ òðåòüåãî, è ò. ä. Êîãäà ïîñëåäíèå äâà ýëåìåíòà çàéìóò ñâîè ìåñòà, ìàññèâ
îêàæåòñÿ îòñîðòèðîâàííûì.
3. Ðåàëèçîâàòü àëãîðèòì ñîðòèðîâêè âñòàâêàìè, ñîñòîÿùèé â ñëåäóþùåì. Ïîñëåäîâàòåëüíî ïðîñìàòðèâàåòñÿ ñîðòèðóåìûé ìàññèâ, è êàæäûé î÷åðåäíîé ýëåìåíò ñòàâèòñÿ íà ñâîå ìåñòî â óæå îòñîðòèðîâàííîé ÷àñòè ìàññèâà (îò
íà÷àëà äî òåêóùåãî ýëåìåíòà).
4. Ðåàëèçîâàòü àëãîðèòì áëî÷íîé ñîðòèðîâêè, ñîñòîÿùèé â ñëåäóþùåì. Äëÿ ñîðòèðîâêè ìàññèâà èç n ÷èñåë çàâîäèòñÿ äîïîëíèòåëüíûé äâóìåðíûé ìàññèâ ðàçìåðà n x 10, è ñîðòèðîâêà ñîñòîèò èç ïîñëåäîâàòåëüíî ÷åðåäóþùèõñÿ
ðàñïðåäåëèòåëüíîãî è ñîáèðàòåëüíîãî ïðîõîäîâ. Âî âðåìÿ ðàñïðåäåëèòåëüíîãî ïðîõîäà ïîñëåäîâàòåëüíî ïðîñìàòðèâàåòñÿ èñõîäíûé ìàññèâ, è î÷åðåäíîå ÷èñëî çàïèñûâàåòñÿ â òó ñòðîêó äâóìåðíîãî ìàññèâà, íîìåð êîòîðîé ðàâåí çíà÷åíèþ
ñîîòâåòñòâóþùåãî ðàçðÿäà ýòîãî ÷èñëà (íà ïåðâîì ðàñïðåäåëèòåëüíîì ïðîõîäå àíàëèçèðóåòñÿ ðàçðÿä åäèíèö, íà âòîðîì äåñÿòêîâ, íà òðåòüåì ñîòåí è ò. ä.). Íà ñîáèðàòåëüíîì ïðîõîäå â èñõîäíûé ìàññèâ çàïèñûâàåòñÿ ñíà÷àëà
ñîäåðæèìîå íóëåâîé ñòðîêè äâóìåðíîãî ìàññèâà, çàòåì ïåðâîé, è ò. ä. Ïàðû ðàñïðåäåëèòåëüíûé-ñîáèðàòåëüíûé
ïðîõîä ïîâòîðÿþòñÿ äî òåõ ïîð, ïîêà íå áóäóò èñ÷åðïàíû ðàçðÿäû ìàêñèìàëüíîãî ýëåìåíòà ìàññèâà (òàêîé àëãîðèòì
ñîðòèðîâêè ãîäèòñÿ äëÿ íåîòðèöàòåëüíûõ öåëûõ ÷èñåë).
5. Ðåàëèçîâàòü àëãîðèòì áûñòðîé ñîðòèðîâêè, ñîñòîÿùèé â ñëåäóþùåì. Áåðåòñÿ ïîñëåäíèé ýëåìåíò ìàññèâà (åãî
çíà÷åíèå íàçîâåì x), è çàâîäÿòñÿ äâå ïåðåìåííûå, õðàíÿùèå èíäåêñû ïåðâîãî è ïîñëåäíåãî ýëåìåíòà â îñòàâøåéñÿ
÷àñòè ìàññèâà. Çíà÷åíèå ïåðâîé èç ýòèõ ïåðåìåííûõ óâåëè÷èâàåòñÿ, à âòîðîé óìåíüøàåòñÿ äî òåõ ïîð, ïîêà íå áóäåò
âûïîëíåíî îäíî èç äâóõ óñëîâèé:
à) ïåðâàÿ ïåðåìåííàÿ ñîäåðæèò èíäåêñ ýëåìåíòà, áîëüøåãî x, à âòîðàÿ ìåíüøåãî.  ýòîì ñëó÷àå çíà÷åíèÿ ýòèõ
ýëåìåíòîâ ìåíÿþòñÿ ìåñòàìè, è ïðîöåññ ñáëèæåíèÿ èíäåêñîâ, ñîäåðæàùèõñÿ â ïåðåìåííûõ, ïðîäîëæàåòñÿ îïÿòü äî
òåõ ïîð, ïîêà íå áóäåò âûïîëíåíî îäíî èç óñëîâèé à) èëè á);
á) èíäåêñ, ñîäåðæàùèéñÿ â ïåðâîé ïåðåìåííîé, áîëüøå èíäåêñà, ñîäåðæàùåãîñÿ âî âòîðîé ïåðåìåííîé. Â ýòîì
ñëó÷àå ïîñëåäíèé ýëåìåíò (ñî çíà÷åíèåì x) ìåíÿåòñÿ ìåñòàìè ñ òåì, èíäåêñ êîòîðîãî ñîäåðæèòñÿ â ïåðâîé ïåðåìåííîé,
çàòåì êàæäàÿ èç äâóõ ÷àñòåé ìàññèâà, íà êîòîðûå îí äåëèòñÿ íîâûì ïîëîæåíèåì ýëåìåíòà ñî çíà÷åíèåì x, ñîðòèðóåòñÿ
îòäåëüíî òåì æå àëãîðèòìîì, è ìàññèâ îêàçûâàåòñÿ óïîðÿäî÷åííûì.
6. Ðåàëèçîâàòü àëãîðèòì ñîðòèðîâêè ñëèÿíèåì, ñîñòîÿùèé â ñëåäóþùåì. Ñíà÷àëà òåì æå àëãîðèòìîì ñîðòèðóþòñÿ
äâå ïîëîâèíû èñõîäíîãî ìàññèâà (ðåêóðñèâíûé âûçîâ), çàòåì çàâîäèòñÿ åùå îäèí âñïîìîãàòåëüíûé ìàññèâ òîé æå
äëèíû, ÷òî è èñõîäíûé, è â íåãî ïåðåïèñûâàþòñÿ ýëåìåíòû äâóõ îòñîðòèðîâàííûõ ÷àñòåé èñõîäíîãî ìàññèâà òàê,
÷òîáû ðåçóëüòàò òîæå áûë óïîðÿäî÷åííûì; íàêîíåö, óïîðÿäî÷åííûå ýëåìåíòû ïåðåïèñûâàþòñÿ îáðàòíî â èñõîäíûé
ìàññèâ.
7. Ðåàëèçîâàòü àëãîðèòì ïèðàìèäàëüíîé ñîðòèðîâêè, ñîñòîÿùèé â ñëåäóþùåì. Äåëàåòñÿ äâà ïðîõîäà ïî èñõîäíîìó
ìàññèâó. Íà ïåðâîì ïðîõîäå ïîñëåäîâàòåëüíî ïðîñìàòðèâàþòñÿ ýëåìåíòû ìàññèâà è ïî î÷åðåäè äîáàâëÿþòñÿ â ïèðàìèäó. Íà âòîðîì ïðîõîäå ýëåìåíòû ïî î÷åðåäè èçâëåêàþòñÿ èç ïèðàìèäû è çàïèñûâàþòñÿ íà îñâîáîæäàþùèåñÿ ìåñòà
â êîíöå ìàññèâà, â ðåçóëüòàòå ÷åãî ìàññèâ îêàçûâàåòñÿ îòñîðòèðîâàííûì.
Ïèðàìèäà ýòî íàáîð ýëåìåíòîâ, çàíèìàþùèõ íà÷àëüíûé îòðåçîê ìàññèâà è óäîâëåòâîðÿþùèõ óñëîâèþ: êàæäûé
ýëåìåíò ïèðàìèäû ñ èíäåêñîì i íå ìåíüøå ýëåìåíòîâ ñ èíäåêñàìè 2i è 2i + 1 (çäåñü âàæíî, ÷òî èíäåêñû ìàññèâà
íà÷èíàþòñÿ ñ 1).
Êîãäà ìû õîòèì äîáàâèòü â ïèðàìèäó ýëåìåíò ñ èíäåêñîì j (ê ýòîìó âðåìåíè ïèðàìèäà ñîñòîèò èç ýëåìåíòîâ ñ
èíäåêñàìè îò 1 äî j − 1), ìû ñìîòðèì ýëåìåíò ñ èíäåêñîì j div 2, è åñëè îí ìåíüøå äîáàâëÿìîãî, ìåíÿåì èõ ìåñòàìè.
Äàëåå, ìû ñðàâíèâàåì ýëåìåíòû ñ èíäåêñàìè j div 2 è j div 4, è ìåíÿåì èõ ìåñòàìè â ñëó÷àå íåîáõîäèìîñòè, ÷òîáû
áîëüøèé ýëåìåíò áûë áëèæå ê íà÷àëó ìàññèâà, è ò. ä. äî òåõ ïîð, ïîêà ëèáî íå âñòðåòèòñÿ áîëüøèé äîáàâëÿåìîãî
ýëåìåíò, ëèáî äîáàâëÿåìûé ýëåìåíò íå îêàæåòñÿ ïåðâûì ýëåìåíòîì ìàññèâà.
Ïðè èçâëå÷åíèè ýëåìåíòà èç ïèðàìèäû ìû ïðîñòî ìåíÿåì ìåñòàìè ïåðâûé ýëåìåíò, î÷åâèäíî íå ìåíüøèé âñåõ
îñòàâøèõñÿ â ïèðàìèäå, ñ ïîñëåäíèì ýëåìåíòîì ïèðàìèäû, ñ÷èòàÿ ïðè ýòîì, ÷òî ïèðàìèäà ñîêðàòèëàñü íà îäèí
ýëåìåíò, è ïîäïðàâëÿåì åå òàê, ÷òîáû ñîõðàíèëîñü ñâîéñòâî ïèðàìèäû. Äëÿ ýòîãî ïåðâûé ýëåìåíò ñðàâíèâàåòñÿ ñ
ýëåìåíòàìè ñ èíäåêñàìè 2 è 3, åñëè ñðåäè íèõ åñòü áîëüøèé åãî, íàèáîëüøèé èç íèõ ìåíÿåòñÿ ìåñòàìè ñ ïåðâûì.
Çàòåì, åñëè ìû ïîìåíÿëè ýëåìåíò ñ èíäåêñîì i, ìû ñðàâíèâàåì åãî íîâîå çíà÷åíèå ñ ýëåìåíòàìè ñ èíäåêñàìè 2i è
2i + 1, è åñëè îáà îíè íå áîëüøå åãî, ïðîöåññ ïðåêðàùàåòñÿ, à åñëè ñðåäè íèõ íàéäåòñÿ áîëüøèé, íàèáîëüøèé èç íèõ
ìåíÿåòñÿ ñ íèì ìåñòàìè, äî òåõ ïîð, ïîêà ñâîéñòâî ïèðàìèäû íå âîññòàíîâèòñÿ.
Download