Отсортировать массив по не убыванию способом сортировки Шелла(Pascal, и элемениы массива
Отсортировать массив по не убыванию способом сортировки Шелла
(Pascal, и элемениы массива необходимо ввести вручную) хелп
Борис Цоконь
Необходимы данные
Арсений Финковский
Данные вводить тошно самому, просто сделаиь прогу которая сортирует
Игорек Овсянкин
необходимо*
Инна Говейко
Щас попоробую
Леша Монасзон
ну ты понял
2 ответа
Галка Дилюдина
Program SortByShell;
const
nn=100; // наибольшее количество частей в массиве
type
Mas=array[1..nn] of integer;
procedure SortShell(n:integer; var a:Mas);
var
i,d,t:integer;
k:boolean;
begin
d:=n div 2; // начальный шаг сортировки
while dgt;0 do begin
k:=true;
while k do begin
k:=false;
for i:=1 to n-d do begin
if(a[i]gt;a[i+d]) then begin
t:=a[i]; a[i]:=a[i+d]; a[i+d]:=t;
k:=true
end
end
end;
d:=d div 2
end
end;
var
i,n:integer;
v:Mas;
begin
Write('n='); Read(n);
Writeln('Вводите элементы массива');
for i:=1 to n do Read(v[i]);
SortShell(n,v);
for i:=1 to n do Write(v[i],' ');
Writeln
end.
Пример
n=15
Вводите элементы массива
-10 -7 4 -12 -26 4 34 -29 7 -28 13 -10 44 0 -46
-46 -29 -28 -26 -12 -10 -10 -7 0 4 4 7 13 34 44
const
nn=100; // наибольшее количество частей в массиве
type
Mas=array[1..nn] of integer;
procedure SortShell(n:integer; var a:Mas);
var
i,d,t:integer;
k:boolean;
begin
d:=n div 2; // начальный шаг сортировки
while dgt;0 do begin
k:=true;
while k do begin
k:=false;
for i:=1 to n-d do begin
if(a[i]gt;a[i+d]) then begin
t:=a[i]; a[i]:=a[i+d]; a[i+d]:=t;
k:=true
end
end
end;
d:=d div 2
end
end;
var
i,n:integer;
v:Mas;
begin
Write('n='); Read(n);
Writeln('Вводите элементы массива');
for i:=1 to n do Read(v[i]);
SortShell(n,v);
for i:=1 to n do Write(v[i],' ');
Writeln
end.
Пример
n=15
Вводите элементы массива
-10 -7 4 -12 -26 4 34 -29 7 -28 13 -10 44 0 -46
-46 -29 -28 -26 -12 -10 -10 -7 0 4 4 7 13 34 44
Погодаев
Константин
Спасибо, понял
Санек
Пожалуйста. А для "Спасибо" здесь кнопка есть.
Алексей Каприелов
Ну что то типо этого
var j,i,k,n:integer; m:array[1..1000] of integer;begin read(n,k); //Ввод элементов массива for i:=1 to n do read(m[i]); //Сортировка по возрастанию for i:=1 to k do for j:=i to k do if m[j]lt;m[i] then swap(m[i],m[j]); //Сортировка по убыванию for i:=k+1 to n do for j:=i to n do if m[j]gt;m[i] then swap(m[i],m[j]); //Вывод элементов массива for i:=1 to n do print(m[i]);end.
var j,i,k,n:integer; m:array[1..1000] of integer;begin read(n,k); //Ввод элементов массива for i:=1 to n do read(m[i]); //Сортировка по возрастанию for i:=1 to k do for j:=i to k do if m[j]lt;m[i] then swap(m[i],m[j]); //Сортировка по убыванию for i:=k+1 to n do for j:=i to n do if m[j]gt;m[i] then swap(m[i],m[j]); //Вывод элементов массива for i:=1 to n do print(m[i]);end.
Арина Хеладзе
Ну выглядет рабочей, благодарю
Egor Shumjak
Только это ни разу сортировка Шелла
Jelvira Covina
Сортировка Шелла - это сортировка с убывающим шагом. В этой программке о шаге вообщем не заикаются.
, оставишь ответ?
Похожие вопросы
-
Вопросы ответы
Новое
NEW
Статьи
Информатика
Статьи
Последние вопросы
Игорь 14 лет назад был на 8 лет моложе, чем его
Математика.
Два тела массами m1 и m2 находящие на расстоянии R друг
Физика.
В сосуде 4целых одна пятая литр воды что бы заполнить сосуд
Математика.
Двум малярам Диме И Олегу поручили выкрасить фасад дома они разделили
Разные вопросы.
найти порядковый номер 41Э если в ядре 20 нейтронов
Разные вопросы.
в ряду натуральных чисел 3, 8, 10, 24, … 18 одно
Математика.
Предприятие по производству с/хоз продукции на производство затратило 3527000 руб Валовый
Разные вопросы.
Математика, задано на каникулы. ВАРИАНТ 1004
НОМЕР 1,2,3,4,5,6,7,8.
Математика.
Имеются три конденсатора емкостью С1=1мкФ, С2=2мкФ и С3=3мкФ. Какую наименьшую емкость
Физика.
Из точки м выходят 3 луча MP MN и MK причём
Геометрия.
Облако тегов