Главная
Решение задач.
Справочные данные.
Формулы.
Программирование.
Как в Windows?
Разное.
Утилиты Windows.
Несправности принтеров.
BIOS по алфавиту.
Тесты.
Карта сайта.

Cортировка массива методом Шелла.

program shell;
uses crt;
const
lens=10; //* Количество элементов массива */
diap=100; //* Диапазон значений */
var
A:array[1 ..lens] of integer; //* Массив A */
mit:integer; //* Переменная для перестановки .*/
str:integer; //* Шаг */
j,i:integer;
BEGIN
clrscr; //* Очистка экрана */
randomize; //* Инициализация случайного выбора */
for i:=1 to lens do A[i]:=random(diap); //* Заполнение массива */
st:=lens div 2; //* Вычисление шага */
for i:= 1 to lens do write(A[i],''); //* Распечатка массива */
while str>0 do //* Основной цикл с уменьшением шага */
begin
for j:=lens-str downto 1 do //* Цикл по массиву */
begin i:=j;
while i<=lens-str do //* Цикл сравнения через шаг */
begin
if A[i]>A[i+str] then //* Если больше, */
begin
mit:=A[i];
A[i]:=A[i+str]; //* то элементы меняются местами */
A[i+str]:=mit;
end;
i:=i+str;
end;
end;
str:=str div 2; //* Уменьшение шага */
end;
writeln; for i:=1 to lens do write(A[i],' ');//* Распечатка нового массива */
readln;
END.



Web программирование   Pascal&Delphi   Бeйсик

подпорные стены из монолитного железобетона

Copyright © 2008-2011 Gruzincev Anton , St. Gorno-Altaysk, Russia, helpw@mail.ru