Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 25.11.2015
Сообщений: 1

Выполнить сортировку одномерного массива 4 методами.

25.11.2015, 20:15. Показов 1709. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
в диалоговом режиме с помощью оператора case выполнить сортировку одномерного массива 4 "методами." Сравнить скорость сортировки одномерного массива целых чисел которые будут задаваться с помощью "random-150..150"
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.11.2015, 20:15
Ответы с готовыми решениями:

Задача на сортировку одномерного массива
Прошу помочь в решении этой задачи. Ввести одномерный массив из N вещественных чисел в диапазоне от -10 до +10. Вычислить среднее...

Выполнить сортировку массива включением
Задан массив AX (N). Добавить массив С(К). Выполнить сортировку включением. В полученном векторе вычислите сумму квадратов всех элементов...

Задача на сортировку одномерного массива методом простой вставки
Люди help!!! Две недели безрезультатно гроблю время на эту задачу! Составить алгоритм, упорядочивающий элементы массива, стоящие на...

1
 Аватар для ermolay
3451 / 2389 / 2135
Регистрация: 04.12.2011
Сообщений: 3,966
25.11.2015, 20:51
Лучший ответ Сообщение было отмечено KristinaSt как решение

Решение

С помощью процедур. Процедуры взял здесь (добавил счетчик перестановок).

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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
const
  max = 100;
 
type
  itp = integer;
  mas = array[1..max] of integer;
 
 
  { Сортировка выбором }
procedure SelectSort2(var A: mas; var c: integer);
var
  i, j, m: Integer;
  x: itp;
begin
      { Ищем элементы для позиций с 1 по max - 1 }
  for i := 1 to max - 1 do
  begin
    m := i;
    x := A[i];
          { Просматриваем все еще не выбранные элементы }
    for j := i + 1 to max do
            { Если встречается элемент, меньший того, что сейчас
              стоит на позиции m, запоминаем в m его позицию,
              а в x - его значение }
      if x > A[j] then
      begin
        m := j;
        x := A[j];
      end;
            { Меняем местами i-ый элемент, и минимальный из оставшихся -
              m-ый элемент, сохраненный в x }
    A[m] := A[i];
    A[i] := x;
    inc(c);
  end;
end;
 
  { Сортировка "пузырьком" }
procedure BubbleSort(var A: mas; var c: integer );
var
  i, j: Integer;
  x: itp;
begin
  for i := max downto 2 do
    for j := 2 to i do
      if A[j] < A[j - 1] then
      begin
        x := A[j];
        A[j] := A[j - 1];
        A[j - 1] := x;
        inc(c);
      end;
end;
 
  { Сортировка "шейкером" }
procedure ShakerSort(var A: mas; var c: integer);
var
  l, r, j: Integer;
  x: itp;
begin
  l := 2;
  r := max;
  while l <= r do
  begin
          { "Пузырек" слева направо }
    for j := l to r do
      if A[j] < A[j - 1] then
      begin
        x := A[j];
        A[j] := A[j - 1];
        A[j - 1] := x;
        inc(c);
      end;
    r := r - 1;
          { "Пузырек" справа налево }
    for j := r downto l do
      if A[j] < A[j - 1] then
      begin
        x := A[j];
        A[j] := A[j - 1];
        A[j - 1] := x;
        inc(c);
      end;
    l := l + 1;
  end;
end;
 
  { Сортировка Шелла }
procedure ShellSort(var A: mas; var c: integer);
const
  steps = 12;
var
  i, j, l, k, p, n: Integer;
  x: itp;
  s: array [1..steps] of Integer;
begin
  c := 0;
  k := 1;
      { Формируем последовательность чисел -
        шаги, с которыми выбираем сортируемые подмассивы }
  for i := steps downto 1 do
  begin
    s[i] := k;
    k := k * 2 + 1;
  end;
  
      { Сортировки подмассивов вплоть до шага 1 -
        обычной сортировки пузырьком }
  for k := 1 to steps do
  begin
    l := s[k];
          { Для каждого шага l нужно отсортировать l подмассивов }
    for p := 1 to l do
    begin
      i := max - l;
      n := 1;
              { Сортировка подмассива пузырьком с остановкой }
              { Подмассив - это (A[p], A[p+l], A[p+2*l], ...) }
      while n > 0 do
      begin
        n := 0;
        j := p;
        while j <= i do
        begin
          if A[j] > A[j + l] then
          begin
            x := A[j];
            A[j] := A[j + l];
            A[j + l] := x;
            n := 1;
            inc(c);
          end;
          j := j + l;
        end;
        i := i - l;
      end;
    end;
  end;
end;
 
var
  a: mas;
  i, k, count: integer;
 
begin
  writeln('Исходный массив:');
  for i := 1 to max do
  begin
    a[i] := -150 + random(301);
    write(a[i]:5);
  end;
  writeln;
  writeln('Для сортировки выбором нажмите 1');
  writeln('Для сортировки "пузырьком" нажмите 2');
  writeln('Для сортировки "шейкером" нажмите 3');
  writeln('Для сортировки методом Шелла нажмите 4');
  readln(k);
  case k of
    1: SelectSort2(a, count);
    2: BubbleSort(a, count);
    3: ShakerSort(a, count);
    4: ShellSort(a, count)
  else begin
      writeln('Вы ввели неверное число');
      exit;
    end;
  end;
  writeln('Отсортированный массив:');
  for i := 1 to max do write(a[i]:5);
  writeln;
  writeln('Количество перестановок = ', count);
  readln;
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.11.2015, 20:51
Помогаю со студенческими работами здесь

Выполнить сортировку массива по алгоритму простой вставки
Дан массив чисел A. Выполнить сортировку массива по алгоритму простой вставки. В качестве разделяющего выбирать средний элемент...

Выполнить сортировку по возростанию между первым и минимальным элементом массива.
4. Дана последовательность, состоящая из дробей: 1/1, 4/2, 7/3, 10/4. Какое минимальное количество элементов последовательности нужно...

Выполнить сортировку массива включением
Задан массив AX (N). Добавить массив С(К). Выполнить сортировку включением. В полученном массиве положительные элементы уменьшите вдвое, а...

Выполнить сортировку элементов массива по возрастанию
Дан массив А. Выполнить сортировку элементов массива по возрастанию. Вывести новый массив на печать. Найти сумму всех нечётных элементов...

Выполнить сортировку массива по алгоритму QuickSort
Дан массив чисел A. Выполнить сортировку массива по алгоритму QuickSort. В качестве разделяющего выбирать средний элемент отрезка. Показать...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru