Advertisement
Guest User

Badsort

a guest
Aug 13th, 2016
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.76 KB | None | 0 0
  1. const m = 100;
  2. var mas : array[1..m] of integer;
  3.     i, j, k, new, n : integer;
  4. begin
  5.     write('введиte размер массива n = ');
  6.     readln(n);
  7.     writeln('введиte ',n,' элементов массива');
  8.  
  9.     for i := 1 to n do
  10.         read(mas[i]);
  11.     writeln;
  12.  
  13.     for j := 1 to n-1 do // нужно идти по всему массиву кроме последнего элемента, с которым все само образуется
  14.     // в каждом проходе этого цикла мы будем иметь голову массива (от 1 до j-1) и хвост - все что осталось
  15.     // задача одной итерации - положить самый большой элемент хвоста в конец головы
  16.     begin
  17.         new := mas[n]; // запоминаем последний элемент массива
  18.         k := n; // и его индекс
  19.  
  20.         for i := n downto j do // идем по всему массиву с конца
  21.             if mas[i]>new then // если нашли элемент, больший запомненного
  22.             begin
  23.                 k := i; // запоминаем его
  24.                 new := mas[i]
  25.             end;
  26.         // по результатам работы предыдущего цикла в переменной new хранится значение максимума хвоста массива
  27.         // меняем местами j-й элемент и new, то есть перемещаем самый большой элемент хвоста в его начало
  28.         mas[k] := mas[j];
  29.         mas[j] := new;
  30.     end;
  31.    
  32.     for i := 1 to n do
  33.         write(mas[i] : 4);
  34.     writeln
  35. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement