Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/34: Рейтинг темы: голосов - 34, средняя оценка - 4.82
0 / 0 / 5
Регистрация: 21.04.2011
Сообщений: 72

Сортировка обменами

13.09.2011, 21:44. Показов 7106. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дана последовательность чисел a1, a2,...an. Требуется переставить числа в порядке возрастания. Для этого сравниваются два соседних числа ai и ai+1. Если ai>ai+1, то делается перестановка. Так продолжается до тех пор, пока все элементы не окажутся расположенными в порядке возрастания. Составить алгоритм сортировки, подсчитывая при этом количество перестановок.

помоги сделать)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.09.2011, 21:44
Ответы с готовыми решениями:

Сортировка обменами
Сортировка обменами. Дана последовательность чисел a1, a2, , an. Требуется переставить числа в порядке возрастания. Для этого сравниваются...

Сортировка обменами.
Сортировка обменами. Дана последовательность чисел а1, а2,..., аn. Требуется переставить числа в порядке возрастания. Для этого...

Сортировка массива обменами по возрастанию
Здравствуйте помогите! Решите, пожалуйста программу, но сделайте все по простому, якобы это сделал школьник-студент 1-2 курса. ...

13
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
13.09.2011, 22:14
Элементарна сортировка пузырьком, весь инет забит, в том числе Википедия.
http://ru.wikipedia.org/wiki/%... 0%BE%D0%BC
0
0 / 0 / 5
Регистрация: 21.04.2011
Сообщений: 72
27.09.2011, 23:45  [ТС]
вот так?
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
Program pro;
Const Nmax = 99;
var
a:Array[1..Nmax] of real;
p:Real;
n,i,j:integer;
begin
//cls;
writeln('Введите количество символов');
readln(n);
writeln('Введите массив чисел');
For j:=1 To n Do
read(a[j]);
{Сортировка}
For i:=1 To n Do
 For j:=1 To n-i Do
  If a[j]>a[j+1] then
  Begin
   p:=a[j];
   a[j]:=a[j+1];
   a[j+1]:=p
   end;
write('Отсортированный массив чисел: ');
for j:=1 to n do
write(a[j],' ');
end.
А как сделать чтоб он подсчитывал количество перестановок ???
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
28.09.2011, 06:26
{Сортировка}
Pascal
1
2
3
4
5
6
7
8
9
10
kol:=0;
For i:=1 To n Do
 For j:=1 To n-i Do
  If a[j]>a[j+1] then
  Begin
   kol:=kol+1;//вот и все
   p:=a[j];
   a[j]:=a[j+1];
   a[j+1]:=p
   end;
0
0 / 0 / 5
Регистрация: 21.04.2011
Сообщений: 72
28.09.2011, 13:23  [ТС]
спасибо за ответ
но я уже сам сделал.
и в вашем варианте есть небольшая ошибочка, которую я сам сделал и думал что же не так.

вот готовая работа пользуйтесь.
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
Program pro;
var
a:Array[1..88] of real;
p,s:Real;
n,i,j:integer;
begin
cls;
writeln('Введите количество чисел');
readln(n);
writeln('Введите массив чисел'); 
For j:=1 To n Do
read(a[j]);
{Сортировка}
s:=0;
For i:=1 To n Do
 For j:=1 To n-i Do
  If a[j]>a[j+1] then
  Begin
  s:=s+i; // ВОТ ОНА ОШИБОЧКА, нужно i поставить, а не 1 
   p:=a[j];
   a[j]:=a[j+1];
   a[j+1]:=p;
   end;
write('Отсортированный массив чисел: ');
for j:=1 to n do
write(a[j],' ');
writeln;
write('Количество перестановок в массиве: ', s);
end.
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
28.09.2011, 13:47
Цитата Сообщение от Грей Посмотреть сообщение
// ВОТ ОНА ОШИБОЧКА, нужно i поставить, а не 1
Это с какого угару?
Количество обменов, это сколько раз a[j]>a[j+1], при чем здесь i?
0
0 / 0 / 5
Регистрация: 21.04.2011
Сообщений: 72
28.09.2011, 13:55  [ТС]
вот с такого, ты попробуй прогу запустить и проверь результат с 1 и результат с i
и посмотри, что получиться...
0
 Аватар для SuPeR XaKer
2857 / 1986 / 788
Регистрация: 23.09.2010
Сообщений: 4,876
28.09.2011, 14:01
"мозг"...элементы то выведи которые сортируются в цикле и подсчитай так просто если не знаешь. А потом сравни со своим s:=s+i;
Ну как разница есть правда?
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
28.09.2011, 14:04
Возьми массив 1 2 3 6 5
здесь будет 1 обмен, а у тебя аж 4.
0
0 / 0 / 5
Регистрация: 21.04.2011
Сообщений: 72
28.09.2011, 14:08  [ТС]
ага! сравнивая со своим s:=s+i количество перестановок считается правильно!
а вот с s:=s+1 он не правильное количество перестановок выводит

Добавлено через 2 минуты
Puporev, программу хоть запускал?
у меня с моим s:=s +i выводит 1 перестановку!
0
 Аватар для SuPeR XaKer
2857 / 1986 / 788
Регистрация: 23.09.2010
Сообщений: 4,876
28.09.2011, 14:12
4 3 2 1
перестановки:
4 3
4 2
4 1
3 2
3 1
2 1
сколько их?
правильно 6.А у тебя будет 10.Разницу видишь?
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
28.09.2011, 14:15
Я поторопился и не так массив записал, вот смотри такой вариант
Миниатюры
Сортировка обменами  
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
28.09.2011, 14:16
А вообще-то при такой сортировке, если считать все смещения, то наверное так и будет...
0
 Аватар для SuPeR XaKer
2857 / 1986 / 788
Регистрация: 23.09.2010
Сообщений: 4,876
28.09.2011, 14:23
http://ru.wikipedia.org/wiki/Сортировка_пузырьком
там как бы 4 перестановки.это явно видно.или нет?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.09.2011, 14:23
Помогаю со студенческими работами здесь

Метод сортировки обменами
Дан массив В, состоящий из n элементов. Элементы массива ввести случайным образом. Переставить элементы так, чтобы они были расположены по...

Упорядочить символьный массив по алфавиту, используя метод сортировки обменами
Упорядочить символьный массив А(n), n<50 по алфавиту, используя метод сортировки обменами.

Упорядочить столбцы матрицы по убыванию значений элементов главной диагонали. Использовать сортировку простыми обменами, реализовав метод в виде
Упорядочить столбцы матрицы по убыванию значений элементов главной диагонали. Использовать сортировку простыми обменами, реализовав метод в...

Блок схема.Сортировка «Пузырьком», Сортировка методом «Последовательных перестановок», Сортировка «Вставками»
Помогите, нужны блок схемы Сортировка «Вставками» Program Vstavka; uses dos; Type mass=array of integer; Var i,b,n,j,a:...

1)Бинарный поиск 2)Сортировка включением 3)Шейкерная сортировка 4)Сортировка разделением
1)В заданном массиве К(N) найти индексы элементов, которые кратны минимальному значению элемента массива. 2)Задан массив AX (N). Добавить...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru