4.2.3. Обработка массива

Линейная сортировка (сортировка отбором)

Идея линейной сортировки по невозрастанию заключается в том, чтобы, последовательно просматривая весь массив, отыскать наибольшее число и поменять его местами с первым элементом. Затем просматриваются элементы массива, начиная со второго, снова находится наибольший, который меняется местами со вторым и т. д. (листинг 4.5).

Листинг 4.5. Программа линейной сортировки по невозрастанию

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,buf,l: byte; a: integer;
begin
writeln('Исходный массив:');
for i:=1 to count do write(' ', m[i]);
writeln; readln;
a:=0; { обнуляем счетчик итераций }
{ изменение размера неотсортированной части массива }
for i:=1 to count-1 do
{ сравниваем поочередно i-й элемент неотсортированной части массива }
{ со всеми от i+1-го до конца }
for j:=i+1 to count do
  begin
    a:=a+1;
    if m[i]     { нашли элемент, больший, чем i-й, то меняем их местами }
      begin
        buf := m[i]; { buf — буфер обмена }
        m[i] := m[j] ;
        m[j] := buf;
        end;
    for 1:=1 to count do write(' ', m[l]); { после сортировки }
    writeln('; итерация # ', a);
  end;
end.

По последнему значению а определяем, что для данного массива линейная сортировка по невозрастанию выполняется за 190 итераций.

 предыдущая         меню        вверх         следующая

Hosted by uCoz