Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Program zd4;
- Var
- i,j,n,t:integer;
- a:array[1..100] of integer;
- Begin {Найти, понять, применить метод сортировки одномерного массива, не применяемый
- в заданиях 1,2,3.}
- Writeln('-'*30); //оформление
- Writeln('Массив будет отсортирован "Гномьей" сортировкой:'); //Комментарий
- Write('Введите размер массива: '); readln(n); //Ввод размера массива
- Writeln('-'*30); //оформление
- Write('Исходный массив: '); //Оформление
- for i:=1 to n do begin //заполнение массива случайными числами
- a[i]:=random(-100,100); //случайные числа от -100 до 100
- write(a[i]:5); //вывод элементов массива
- end;
- i := 2; //присвоение i значения 2
- j := 3; //присвоение присвоение j значения 3
- while i <= n do //пока i меньше либо равно n
- begin
- if a[i-1] <= a[i] then //рассматривает текущий и предыдущий элемент, если предыдущий элемент
- begin //меньше либо равен текущему, то это нас устраивает, и мы двигаемся дальше
- i := j;
- j := j + 1
- end
- else //если же нет, то элементы следует поменять местами
- begin
- t := a[i-1];
- a[i-1] := a[i];
- a[i] := t;
- i := i - 1; //возвращаемся на 1 элемент назад, чтобы вдальнейшем проверить не является ли он меньше того, что стоит перед ним
- if i = 1 then //если же i равно 1, то мы дошли до конца массива, и стоит двигаться дальше
- begin
- i := j;
- j := j + 1
- end
- end
- end;
- Writeln;
- Writeln('-'*30); //Оформление
- write('Отсортированный массив: '); //Комментарий
- for i:=1 to n do //Вывод уже отсортированных элементов массива
- write(a[i]:5);
- Writeln; //переход на новую строку
- Writeln('-'*30); //оформление
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement