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

Выполнить сортировку массива по убыванию методом пузырька

10.03.2015, 21:15. Показов 38260. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задан одномерный массив из 7 случайных чисел .Выполнить сортировку массива по убыванию методом пузырька
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.03.2015, 21:15
Ответы с готовыми решениями:

Выполнить сортировку элементов массива, стоящих на чётных номерах, по убыванию методом пузырька
Задан целочисленный массив из 10 случайных чисел.Выполнить сортировку элементов массива,стоящих на чётных номерах по убыванию методом...

Произвести сортировку массива методом «пузырька»
Дан одномерный массив целых чисел из 30 элементов. Произвести сортировку массива методом «пузырька». Выдать массив на экран до сортировки и...

Отсортировать по возрастанию методом пузырька с ограничением первую половинку массива,а вторую по убыванию методом отбора
Отсортировать по возрастанию методом пузырька с ограничением первую половинку массива,а вторую по убыванию методом отбора.спасибо за...

4
 Аватар для Leon_AD
105 / 105 / 51
Регистрация: 11.04.2014
Сообщений: 160
10.03.2015, 21:53
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
const n=7;
var i,j,c: integer;
    a: array[1..n] of integer;
    begin
    for i:=1 to n do
        begin
             a[i]:=random(21);
             write(a[i]:3);
        end;
    writeln();
    for i:=1 to n-1 do
        for j:=1 to n-1 do
        if(a[j]<a[j+1])
        then
            begin
                 c:=a[j];
                 a[j]:=a[j+1];
                 a[j+1]:=c;
             end;
    for i:=1 to n do
        write(a[i]:3);
    writeln();
    end.
1
Модератор
10451 / 5746 / 3409
Регистрация: 17.08.2012
Сообщений: 17,478
11.03.2015, 14:07
Leon_AD, неэффективный у Вас пузырёк. Можно побыстрее сделать. Повторять внутренний цикл лучше до тех пор, пока имел место обмен элементов массива. randomize написать забыли. Вот, подправил:
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
const n = 7;
var i, c: integer;
    a: array [1..n] of integer;
    b: boolean;
begin
  randomize;
  for i := 1 to n do
    begin
      a[i] := random(21);
      write(a[i]:3)
    end;
  writeln;
  repeat
    b := true;
    for i := 1 to n - 1 do
      if a[i] < a[i + 1]
        then begin
          c := a[i];
          a[i] := a[i + 1];
          a[i + 1] := c;
          b := false
        end
  until b;
  for i := 1 to n do write(a[i]:3);
  readln
end.
И бросайте, если возможно, эту C/С#/С++шную привычку "()" писать, это лишнее. Кстати, есть диалекты паскаля, которые это дело за ошибку считают. Не ставьте лишних скобок. ";" перед end и until писать незачем, end и until и без того ограничители.
0
 Аватар для Leon_AD
105 / 105 / 51
Регистрация: 11.04.2014
Сообщений: 160
11.03.2015, 18:43
Цитата Сообщение от Cyborg Drone Посмотреть сообщение
Leon_AD, неэффективный у Вас пузырёк. Можно побыстрее сделать. Повторять внутренний цикл лучше до тех пор, пока имел место обмен элементов массива.
Не совсем понял, что Вы имели ввиду. Это?
Pascal
1
2
for i:=1 to n-1 do
        for j:=1 to n-i-1 do
Цитата Сообщение от Cyborg Drone Посмотреть сообщение
randomize написать забыли.
Это я не забыл, просто не пишу, т.к. и без него элементы каждый раз новые генерируется. Возможно, потому что PascalABC сам это прописывает.
Цитата Сообщение от Cyborg Drone Посмотреть сообщение
И бросайте, если возможно, эту C/С#/С++шную привычку "()" писать, это лишнее.
Разве это ошибка? Просто функция без аргументов. Разве эффективность программы снижается?
0
Модератор
10451 / 5746 / 3409
Регистрация: 17.08.2012
Сообщений: 17,478
13.03.2015, 02:11
Цитата Сообщение от Leon_AD Посмотреть сообщение
Не совсем понял, что Вы имели ввиду. Это?
Да. У Вас обязательно будет n-1 проход по массиву, даже в том случае, если массив уже отсортирован. Неэффективно.
Цитата Сообщение от Leon_AD Посмотреть сообщение
и без него элементы каждый раз новые генерируется.
В PascalABC ABC - да. Однако, в иных диалектах паскаля - далеко не всегда. Ваше решение может пригодиться для людей, которым нужна реализация программы не для этого ущербного PascalABC. Что же не написать лишние randomize и readln?
Цитата Сообщение от Leon_AD Посмотреть сообщение
Разве это ошибка? Просто функция без аргументов. Разве эффективность программы снижается?
Я же написал, что
Цитата Сообщение от Cyborg Drone Посмотреть сообщение
есть диалекты паскаля, которые это дело за ошибку считают.
Так что, уже сами думайте, ошибка оно или нет. Эффективность программы нисколько не страдает. Эти скобки просто игнорируются. И ";" перед end тоже игнорируется. Писать или не писать эти лишние элементы - дело вкуса. Я предпочитаю писать, как учит Никлаус Вирт. А в его синтаксических диаграммах тавтология терминальных символов не приветствуется.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.03.2015, 02:11
Помогаю со студенческими работами здесь

Сортировка двумерного массива по убыванию по столбцам методом пузырька
Отсортировать всю матрицу n*m по столбцам по убыванию. Проверте есть ли в этой матрице элемент, который является кратным сумме из остальных...

Отсортировать главную диагональ массива по убыванию методом «пузырька»
Дан массив из n x m элементов. Отсортировать главную диагональ массива по убыванию методом «пузырька». В коде выдает ошибку,...

Выполнить сортировку элементов массива, стоящих на нечетных номерах по убыванию
задан одномерный целочисленный массив из 10 случайных чисел.Выполнить сортировку элементов массива,стоящих на нечетных номерах по...

Выполнить сортировку по убыванию элементов массива, стоящих на нечетных номерах
задан одномерный целочисленный массив из 10 случайных чисел.Выполнить сортировку элементов массива,стоящих на нечетных номерах по...

Отсортируйте отрицательные элементы двумерного массива по строкам, по убыванию, методом пузырька
Есть решенная задача, проверьте пожалуйста. ( сортироваться должны только отрицательные, положительные остаются на местах) const...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru