Алгоритм сортировки выбором

 

 

Сущность алгоритма заключается в выборе на каждом шаге его работы наименьшего элемента из оставшихся. На первом шаге это выбор осуществляется из всего массива, а найденное значение ставится в первую позицию. На втором шаге первый элемент исключается из рассмотрения, а найденный наименьший ставится во вторую позицию, на следующем шаге из рассмотрения исключается уже два первых элемента и т.д.

 

Алгоритм

 

Очередной Номер =1

Пока Очередной Номер <= Количеству элементов массив Делать

                  Из подмассива ( Очередной Номер, Количество элементов) выбрать наименьший

                  Наименьший поменять местами с элементом чей номер = Очередному Номеру

                  Очередной номер = Очередной номер + 1

 

Текст программы:

 

MODULE example;

IMPORT In, StdLog;

PROCEDURE Sort*;

VAR

  a:ARRAY 100 OF INTEGER;

  N,i,k,min,c:INTEGER;

BEGIN

 In.Open;

 N:=-1;

 REPEAT

  N:=N+1;

  In.Int(a[N]);

 UNTIL ~In.Done;

 FOR i:=0 TO N-2 DO

   min:=i;

   FOR k:=i+1 TO N-1 DO

     IF a[min]>a[k] THEN

       min:=k;

     END;

   END;

   c:=a[min];a[min]:=a[i];a[i]:=c;

 END;

 FOR i:=0 TO N-1 DO

   StdLog.Int(a[i]);

 END;

END Sort;

END example.

 

 

Hosted by uCoz