«аочное дистанционное образование с получением государственного диплома через 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 итераций.


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

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


 
     
   
 


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

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

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

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

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


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

 


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