«аочное дистанционное образование с получением государственного диплома через Internet










ѕолучить информацию о поступлении
 
√лавна€ Ќовости  арта сайта ‘отоальбом √остева€ книга  онтакты

 

—ортировка методом пузырька

ќдин из самых попул€рных методов сортировки Ц Ђпузырьковыйї метод Ц основан на том, что в процессе исполнени€ алгоритма более Ђлегкиеї элементы массива постепенно Ђвсплываютї. ќсобенностью данного метода €вл€етс€ сравнение не каждого элемента со всеми, а сравнение в парах соседних элементов. јлгоритм пузырьковой сортировки по убыванию состоит в последовательном просмотре снизу вверх (от начала к концу) массива ћ. ≈сли дл€ соседних элементов выполн€етс€ условие, согласно которому элемент, наход€щийс€ справа, больше элемента, наход€щегос€ слева, то выполн€етс€ обмен значени€ми этих элементов.

“екст программы сортировки массива по невозрастанию можно записать следующим образом:

program Sort_Puz;
{—ортировка массива Ђпузырьковымї методом по невозрастанию} const
Count = 20;
M:array [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, K, L : Byte;
A : integer;
begin
Writeln('»сходный массив: ');
for I := 1 to Count do Write(M[I],' ');
Writeln;
A:=0;
for I := 2 to Count do
{—ортировка Ђпузырьковымї методом по невозрастанию}
begin
for J:=Count downto I do
begin
A:=A+1;
if M[J-1]
{≈сли элемент справа больше элемента слева, то Ђвытеснитьї его влево - пузырек Ђвсплываетї}
begin
K:=M[J-1]; {ќбмен значени€ми этих элементов}
M[J-1]:=M[J];
M[J]:=K; {ѕечатать текущее состо€ние массива после каждой перестановки}
for L := 1 to Count do Write(M[L]);
Writeln('„исло итераций =',ј);
end;
end;
end; {«авершение сортировки}
end.

«апустите интегрированную среду программировани€. ¬ведите текст программы Sort_Puz и запишите файл на диск под соответствующим именем, а затем откомпилируйте его. ѕосле успешного завершени€ компил€ции запустите программу, отслежива€ в пошаговом режиме текущие значени€ переменных I, J,  , M[J], M[JЦ1], всего массива ћ, а по окончании цикла J просматрива€ изменени€ массива в результате одного прохода.  ак можно заметить, при помощи оператора for с параметром J выполн€етс€ циклический просмотр элементов массива от последнего до второго, и при этом элементы, большие, чем Ђсоседиї слева, смещаютс€ при обмене к началу массива, а меньшие смещаютс€ вправо Ц Ђвсплываютї в конце массива.  аждый проход фиксируетс€ счетчиком Ц увеличением на единицу значени€ переменной ј. ѕосле каждого просмотра-сравнени€ элементов массива просматриваемый участок массива уменьшаетс€ на один элемент, так как из рассмотрени€ исключаетс€ самый левый (самый большой) элемент. “акое уменьшение просматриваемого участка реализуетс€ при помощи внешнего цикла for с параметром I.

ѕо последнему значению ј можно определить, что дл€ данного массива сортировка по невозрастанию пузырьковым методом выполн€етс€ за 170 итераций.


”знать как сэкономить в кризис моно на сайте ekonom-it.ru

”пражнени€ по обработке файлов (упр 4.) ”пражнени€ по обработке файлов (упр 5.) ќписание типа Ђмассивї ќперации над элементами массива Ћинейна€ сортировка (сортировка отбором) ”слови€ задач (без ответов) ќписание типа Ђћножествої ќперации над множествами ”пражнение 1 ”пражнение 2 


 
     
   
 


ѕриглашаем прин€ть участие в круглом столе!
подробнее   >>>
 

»нститут ћенеджмента, Ёкономики и »нноваций начинает набор на курсы повышени€ квалификации!
подробнее   >>>
 

”важемые студенты јЌќ ¬ѕќ »ћЁи»!
подробнее   >>>
 

Ќачинаетс€ набор на курсы повышени€ квалификации!
подробнее   >>>
 

ѕриглашаем прин€ть участие в конференци€х!
подробнее   >>>
 


все новости...

 


–ассылки Subscribe.Ru
—овременное образование
ѕодписатьс€ письмом