0 / 0 / 0
Регистрация: 19.05.2014
Сообщений: 31
1

Листинг с реализацией сортировки вставками нужно переделать на сортировку Шелла

19.12.2015, 13:38. Показов 738. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня есть листинг с реализацией сортировки вставками, мне нужно переделать его на сортировку Шелла

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
program abc;
const m=10; // разрядность матрици MxM
var
  mas:array[1..m,1..m] of integer;
  h:array[1..m] of integer;
  s,i,j,mdd,key,x,t,tk,tp:integer;
  ts : System.TimeSpan; {специальный тип .NET для работы со временем}
    ti: integer;
begin
var stopWatch := new System.Diagnostics.Stopwatch;
 stopWatch.Start;
 
// Генерация матрицы
writeln('Исходная матриця:');
  randomize;
  for i:=1 to m do begin
    for j:=1 to m do begin
      mas[i,j]:=random(100)-50;
     write(' ',mas[i,j],',');
    end;
  writeln;
  end;
  
  // нахождение х-к столбцов матрици(х-к матрици - сума елементов,которые >= 0 и они непарные
  for j:=1 to m do
    for i:=1 to m do begin
      if (mas[i,j]<0) and ((mas[i,j] mod 2) <> 0) then
        h[j]:=h[j]+abs(mas[i,j]);
    end;
       writeln();
 // вывод х-к матрицы
 for i:=1 to m do begin
 write(h[i],' ');
 end;
  
 
// сортировка
  for j:=2 to m do
    begin 
      key:=h[j];
      i:=j-1;
      while ((i>0)and (h[i]<key)) do
        begin
          for x:=1 to m do begin
            s:=mas[x,i];
            mas[x,i]:=mas[x,i+1];
            mas[x,i+1]:=s;
          end;
          h[i+1]:=h[i];
          i:=i-1;
        end;
      h[i+1]:=key;      
      end;
     ti:=0;
 
 writeln;
 writeln;
writeln('Отсортированая  матрица');    
for i:=1 to m do begin
for j:=1 to m do  write(' ',mas[i,j],',');
writeln;
end;
writeln;
// Вывод отсортированых х-к матрицы
for i:=1 to m do     write(h[i],' ');
writeln;
writeln;
 
ti:=0;
  while ti<10000000 do
    inc(ti);             
  stopWatch.Stop;
  ts := stopWatch.Elapsed;
  writelnFormat('Время роботы: {0:00}:{1:00}:{2:00}.{3:000}',ts.Hours, ts.Minutes, ts.Seconds, ts.Milliseconds);
 
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.12.2015, 13:38
Ответы с готовыми решениями:

Исследовать сортировки(вставками, бинарными вставками, обмен, Шелла) на числовых массивах, размерностью 50 элементов, 100 элементов, 500 элементов. Дл
А) Исследовать сортировки(вставками, бинарными вставками, обмен, Шелла) на числовых массивах,...

Нужно применить сортировку вставками, к этому коду
#include &lt;iostream&gt; using namespace std; int main() { int n, *arr1, *arr2,x; cout &lt;&lt;...

Сортировку вставками меняем на Пирамидальную сортировку и на Сортировку подсчётом
Здравствуйте. Я не как не могу разобраться.Помогите. У меня есть листинг сортировки вставками: ...

Сравнить сортировку Шелла и сортировку с помощью прямого включения
Хотел бы узнать как можно написать код который будет сравнивать сортировку Шелла и сортировка с...

5
Эксперт Pascal/Delphi
6807 / 4565 / 4818
Регистрация: 05.06.2014
Сообщений: 22,438
19.12.2015, 14:52 2
Переделать листинг с сортировки Шелла в сортировку вставками
Вы уж определитесь, что вам нужно.
Шелл -> вставки
или
вставки -> Шелл
И еще пару тем у вас болтается "ни к селу, ни к городу" по поводу сортировок. (Шелл и проч.)
Удалять мусор? Или все темы склеить в одну?
0
0 / 0 / 0
Регистрация: 19.05.2014
Сообщений: 31
19.12.2015, 15:19  [ТС] 3
мне нужно только то что в этой теме
0
Эксперт Pascal/Delphi
6807 / 4565 / 4818
Регистрация: 05.06.2014
Сообщений: 22,438
19.12.2015, 15:28 4
непалюся, понятно.
То есть, заглянуть сюда - Сортировки и найти там нужный метод сортировки
вам религия не позволяет?
0
0 / 0 / 0
Регистрация: 19.05.2014
Сообщений: 31
19.12.2015, 16:43  [ТС] 5
нет!
0
Mental handicap
1245 / 623 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
19.12.2015, 17:01 6
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 { Сортировка Шелла }
  procedure ShellSort( var A : mas );
    const
      steps = 12;
    var
      i, j, l, k, p, n : Integer;
      x : itp;
      s : array [1..steps] of Integer;
    begin
      k := 1;
      { Формируем последовательность чисел -
        шаги, с которыми выбираем сортируемые подмассивы }
      for i := steps downto 1 do
        begin
          s[i] := k;
          k := k * 2 + 1;
        end;
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.12.2015, 17:01
Помогаю со студенческими работами здесь

Заменить сортировку в программе на сортировку методом Шелла
Добрый день Мне сказали заменить сортировку в моей программе на сортировку методом Шелла т.к. она...

Сравнить пузырьковую сортировку и сортировку Шелла
Я написал програмку нужно сравнить: пузырьковую сортировку и сортировку Шелла, но программа не...

Сортировку вставками меняем на сортировку слиянием
Код программы выполняет сортировку массива вставками. Как сюда вставить код сортировки массива...

Составить блок – схемы для шейкер- сортировки и сортировки Шелла
Доброго времени суток, очень нужна ваша помощь в решении данной проблемы, буду бесконечно...

Написать комментарии, поясняющие принцип сортировки. (Метод сортировки - вставками)
Написать комментарии, поясняющие принцип сортировки. (Метод сортировки - вставками) Если вдруг...

Расставить элементы массива в порядке возрастания методом сортировки выбором и сортировки простыми вставками
Здрасьте еще раз!С прошедшим вас праздником! я глупая и бестолковая опять пришла к вам на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru