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

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

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

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

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

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

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

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

4
 Аватар для Leon_AD
105 / 105 / 51
Регистрация: 11.04.2014
Сообщений: 160
10.03.2015, 21:53 2
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
Модератор
10093 / 5431 / 3359
Регистрация: 17.08.2012
Сообщений: 16,611
11.03.2015, 14:07 3
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 4
Цитата Сообщение от 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
Модератор
10093 / 5431 / 3359
Регистрация: 17.08.2012
Сообщений: 16,611
13.03.2015, 02:11 5
Цитата Сообщение от Leon_AD Посмотреть сообщение
Не совсем понял, что Вы имели ввиду. Это?
Да. У Вас обязательно будет n-1 проход по массиву, даже в том случае, если массив уже отсортирован. Неэффективно.
Цитата Сообщение от Leon_AD Посмотреть сообщение
и без него элементы каждый раз новые генерируется.
В PascalABC ABC - да. Однако, в иных диалектах паскаля - далеко не всегда. Ваше решение может пригодиться для людей, которым нужна реализация программы не для этого ущербного PascalABC. Что же не написать лишние randomize и readln?
Цитата Сообщение от Leon_AD Посмотреть сообщение
Разве это ошибка? Просто функция без аргументов. Разве эффективность программы снижается?
Я же написал, что
Цитата Сообщение от Cyborg Drone Посмотреть сообщение
есть диалекты паскаля, которые это дело за ошибку считают.
Так что, уже сами думайте, ошибка оно или нет. Эффективность программы нисколько не страдает. Эти скобки просто игнорируются. И ";" перед end тоже игнорируется. Писать или не писать эти лишние элементы - дело вкуса. Я предпочитаю писать, как учит Никлаус Вирт. А в его синтаксических диаграммах тавтология терминальных символов не приветствуется.
1
13.03.2015, 02:11
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.03.2015, 02:11
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Элементы алгоритмизации
hw_wired 28.01.2025
Основы алгоритмизации В современном мире алгоритмы играют фундаментальную роль в развитии информационных технологий и программирования. Понимание основ алгоритмизации является ключевым элементом в. . .
Человек и информация
hw_wired 28.01.2025
Введение: роль информации в познании мира В современном мире информация играет фундаментальную роль в процессе познания окружающей действительности. Она представляет собой совокупность сведений об. . .
Компьютер и информация
hw_wired 28.01.2025
Эволюция вычислительных машин История развития вычислительной техники начинается задолго до появления первых электронных устройств. Человечество всегда стремилось упростить процесс вычислений и. . .
Информационные технологии
hw_wired 28.01.2025
Введение в современные технологии работы с информацией В современном мире информационные технологии стали неотъемлемой частью практически всех сфер человеческой деятельности. Они существенно. . .
Информация вокруг нас
hw_wired 28.01.2025
Основные понятия информации В современном мире понятие информации является фундаментальным и охватывает практически все сферы человеческой деятельности. Информация представляет собой совокупность. . .
Компьютер для начинающих
hw_wired 28.01.2025
Введение в мир компьютерных технологий В современном мире информация стала одним из важнейших ресурсов человечества, определяющим развитие общества и технологий. Наша жизнь неразрывно связана с. . .
[golang] 189. Rotate Array
alhaos 28.01.2025
Повороты рукоятки, целочисленный слайс нужно сдвинуть на целое положительное число. Мне очень нравится решение на GO / / https:/ / leetcode. com/ studyplan/ top-interview-150/ package topInterview . . .
КуМир: решение задач на матрицы
bytestream 28.01.2025
КуМир представляет собой среду для обучения программированию, которая включает в себя мощные инструменты для работы с матрицами. Матрица в программировании - это двумерный массив, состоящий из. . .
КуМир: решение задач на строки
bytestream 28.01.2025
В системе программирования КуМир работа со строковыми данными является одним из важнейших аспектов создания программ. Строки представляют собой последовательности символов, заключенные в кавычки,. . .
КуМир: решение геометрических задач
bytestream 28.01.2025
Программирование геометрических задач в среде КуМир становится всё более актуальным в обучении школьников и студентов. КуМир — это разработанная в России обучающая программная среда, предназначенная. . .
КуМир, исполнитель Водолей: Задачи и решения
bytestream 28.01.2025
КуМир — это образовательная среда для обучения программированию. Она предлагает пользователям разнообразные инструменты для разработки и отладки программ, что особенно ценно для студентов и. . .
КуМир, исполнитель Чертежник: Решение задач
bytestream 28.01.2025
КуМир (Комплект Учебных МИРов) представляет собой образовательную среду для обучения основам программирования и алгоритмизации. Исполнитель Чертежник работает на координатной плоскости, где может. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru