Сортировка Пузырьком - Исследование по сравнению алгоритмов сортировки по трудоемкости. Трудоёмкость считать суммой операций арифметики, сравнения и присвоения за всю работу алгоритма сортировки Сравнивать трудоёмкости для лучшего, худшего и случайного сл
Описание
Цель работы:
/ задача из РК программа в Pascal Lazarus.
В архиве также файл с объяснениями работы программы. Тэги: Программа на Lazarus, PascalObject, Pascal, Delphi, Turbo Delphi, Pascal ABC / Анимация, ЛР, РК, ДЗ, 2023
Условия для программы, под которые она выполнена:
Сортировка методом Пузырька (Bubble Sort) - Исследование по сравнению алгоритмов сортировки по трудоемкости. Трудоёмкость считать суммой операций арифметики, сравнения и присвоения за всю работу алгоритма сортировки Сравнивать трудоёмкости для лучшего, худшего и случайного случаев. Массивы брать не менее 10 элементов длиной.

Программа в сделанном виде:

Сортировка пузырьком (Bubble Sort) — это простой алгоритм сортировки, который многократно проходит по списку, сравнивает каждую пару соседних элементов и меняет их местами, если они находятся в неправильном порядке. Проходы повторяются до тех пор, пока не произойдет полный обход списка без каких-либо обменов, что означает, что список уже отсортирован.
Показать/скрыть дополнительное описание
Лабораторная работа . Вариант 6. ЛР Исследование по сравнению алгоритмов сортировки по трудоемкости Цель работы: / задача из РК программа в Pascal Lazarus. В архиве также файл с объяснениями работы программы. Тэги: Программа на Lazarus, PascalObject, Pascal, Delphi, Turbo Delphi, Pascal ABC / Анимация, ЛР, РК, ДЗ, 2023 Условия для программы, под которые она выполнена: Сортировка методом Пузырька (Bubble Sort) - Исследование по сравнению алгоритмов сортировки по трудоемкости. Трудоёмкость считать суммой операций арифметики, сравнения и присвоения за всю работу алгоритма сортировки Сравнивать трудоёмкости для лучшего, худшего и случайного случаев. Массивы брать не менее 10 элементов длиной.
Программа в сделанном виде: Сортировка пузырьком (Bubble Sort) — это простой алгоритм сортировки, который многократно проходит по списку, сравнивает каждую пару соседних элементов и меняет их местами, если они находятся в неправильном порядке. Проходы повторяются до тех пор, пока не произойдет полный обход списка без каких-либо обменов, что означает, что список уже отсортирован. Программа реализует алгоритм сортировки пузырьком и анализирует его трудоемкость в заданном и худшем случаях. Вот пошаговое объяснение работы программы: 1.Инициализация массива Numbers размером 1000 элементов и нескольких переменных (i, j, temp, Count, CountMax, N). 2.Ввод пользователем значения N - количество чисел в массиве.
3.Заполнение массива Numbers введенными пользователем значениями. 4.Вывод на экран исходного массива. 5.Сортировка массива методом пузырька (по возрастанию), подсчет трудоемкости (Count) для данного случая. 6.Вывод на экран отсортированного массива и трудоемкости для текущего случая. 7.Инициализация переменной CountMax для подсчета трудоемкости в худшем случае. 8.Сортировка массива методом пузырька для \"худшего\" случая (по убыванию, в обратную сторону), подсчет трудоемкости (CountMax) для данного случая. 9.Вывод на экран отсортированного массива и трудоемкости для \"худшего\" случая. 10.Завершение программы. Программа анализирует трудоемкость алгоритма сортировки пузырьком в двух случаях - для текущего (уже отсортированный массив) и худшего (все числа в обратном порядке) вариантов.
Примечание: Сортировка пузырьком не является эффективным методом для больших массивов данных, так как ее трудоемкость в среднем случае составляет O(N^2). Сортировка пузырьком (Bubble Sort) — это простой алгоритм сортировки, который многократно проходит по списку, сравнивает каждую пару соседних элементов и меняет их местами, если они находятся в неправильном порядке. Проходы повторяются до тех пор, пока не произойдет полный обход списка без каких-либо обменов, что означает, что список уже отсортирован. Код программы: program project1; var Numbers: array[0..999] of Integer; i, j, temp, Count, CountMax, N: Integer; begin N:=0; // обнуляем значение кол-ва чисел в массиве // Запрашиваем у пользователя количество чисел в массиве writeln(\'Analiz trudoemkosti algoritma sortirovki Puzirkom\'); writeln(\'--------------------------------------------------\'); writeln(); writeln(\'Vvedite kolichestvo chisel v massive N:\'); write(\'N = \'); readln(N); // Заполняем массив числами, введенными пользователем writeln(\'Vvedite N = \', N, \' chisel dlya zapolnenia massiva:\'); for i := 0 to N-1 do begin write(\'Chislo \', i + 1, \': \'); readln(Numbers); end; // Выводим исходный массив на экран writeln(\'Ishodnii massiv:\'); for i := 0 to N-1 do write(Numbers, \' \'); Count := 0; // обнуляем счетчик действий (Трудоемкость) // Реализуем алгоритм сортировки пузырьком (по возрастанию) for i := 0 to N-1 do begin for j := 0 to N - i - 2 do begin if Numbers[j] > Numbers[j + 1] then begin temp := Numbers[j]; Numbers[j] := Numbers[j + 1]; Numbers[j + 1] := temp; Inc(Count); // увеличиваем счетчик на 1 end; end; end; // Выводим отсортированный массив и трудоемкость для текущего случая writeln; // пустая строка writeln; // пустая строка writeln(\'Otsortirovannii massiv po vozrastaniyu:\'); for i := 0 to N-1 do write(Numbers, \' \'); writeln; writeln(\'Trudoemkost dlya tekuchego sluchaya (kolichestvo deystviy pri sortirovke): \', Count); // Вычисляем трудоемкость для \"худшего\" случая (все числа в обратном порядке) CountMax:=0; // обнуляем счетчик действий (Трудоемкость для \"худшего\" случая) // Реализуем алгоритм сортировки пузырьком для \"худшего\" случая (по убыванию) for i := 0 to N-1 do begin for j := 0 to N - i - 2 do begin if Numbers[j] < Numbers[j + 1] then // изменено условие на \"меньше\" begin temp := Numbers[j]; Numbers[j] := Numbers[j + 1]; Numbers[j + 1] := temp; Inc(CountMax); // увеличиваем счетчик на 1 end; end; end; // Выводим отсортированный массив и трудоемкость для \"худшего\" случая writeln; // пустая строка writeln(\'Otsortirovannii massiv po ubivaniu:\'); for i := 0 to N-1 do write(Numbers, \' \'); writeln; writeln(\'Trudoemkost pri hudshem sluchae (kolichestvo deystviy pri sortirovke): \', CountMax); readln; end..
Характеристики лабораторной работы
Преподаватели
Список файлов
