Лабораторная работа по ИТ 2 Матлаб. Отчет по лабораторной работе №2. Алгоритмы и программы решения задач
Скачать 0.88 Mb.
|
МИНОБРНАУКИ РОССИИ Санкт-Петербургский государственный электротехнический университет «ЛЭТИ» им. В.И. Ульянова (Ленина) Кафедра радиотехнической электроники отчет по лабораторной работе № 2 по дисциплине «Информационные технологии» Тема: Алгоритмы и программы решения задач комбинаторики
Санкт-Петербург 2022 Цель работы: изучение и программирование стандартного алгоритма сортировки Постановка задачи: Задан алгоритм сортировки вставкой и вектор исходных данных S(n) 1. Реализовать алгоритм сортировки (по возрастанию) для n-вектора исходных данных в программе Matlab 2. Вставить комментарии к операторам программы 3. Получить в Excel тестовые результаты сортировки по возрастанию 4. Провести сортировку вектора исходных данных программой Matlab 5. Определить число перестановок элементов вектора (M) 6. Сравнить полученные результаты с тестовыми 7. Модифицировать программу Matlab на выполнение сортировки по убыванию для n-вектора исходных данных 8. Получить в Excel тестовые результаты сортировки по убыванию 9. Провести сортировку вектора исходных данных модифицированной программой Matlab 10. Определить число перестановок элементов вектора (M) 11. Сравнить полученные результаты с тестовыми 12. Оформить отчет, включив в него тексты программ Matlab, тестовые результаты и листинги отсортированных векторов Блок-схема Сортировка по убыванию n-вектора исходных данных При сортировке по возрастанию изменяется знак больше на меньше в последнем условии Sj+1 < Sj Код программы Сортировка по убыванию n-вектора исходных данных % Сортировка по убыванию % S = [10 8 3 28 11 4 1]; S = input ("Введите вектор S = "); % Ввод вектора N = length(S); % Длина вектора M=0; % Счетчик замен for i=1:(N-1) % Цикл по всему вектору j=i; % Номер элемента while j>0 && S(j+1)>S(j) % Если не выходим за границы массива и % следующий элемент меньше, то temp=S(j); % Замена двух элементов вектора S(j)=S(j+1); S(j+1)=temp; j=j-1; % Переходим к следующему элементу M=M+1; % Увеличиваем счетчик замен end end disp("Количество замен M = " + M) disp ("Отсортирванный по убыванию массив S") % Выводим вектор disp(S); Сортировка по возрастанию n-вектора исходных данных % Сортировка по возрастанию % S = [10 8 3 28 11 4 1]; S = input ("Введите вектор S = "); % Ввод вектора N = length(S); % Длина вектора M=0; % Счетчик замен for i=1:(N-1) % Цикл по всему вектору j=i; % Номер элемента while j>0 && S(j+1) % следующий элемент меньше, то temp=S(j); % Замена двух элементов вектора S(j)=S(j+1); S(j+1)=temp; j=j-1; % Переходим к следующему элементу M=M+1; % Увеличиваем счетчик замен end end disp("Количество замен M = " + M) disp ("Отсортирванный по возрастанию вектор S") % Выводим вектор disp(S); Результаты Отсортированный по возрастанию вектор Отсортированный по убыванию вектор При этом при сортировке по возрастанию было сделано в два раза больше замен, из этого следует, что скорость выполнения программы очень сильно зависит от входных данных. Тестовые результаты При проведении сортировки в программе Exel были получены следующие векторы Из этого следует, что программа работает верно Выводы В результате проведения данной лабораторной работы были написаны программы для сортировки по возрастанию и убыванию n-вектора исходных данных. Правильность результатов работы написанного кода были проверены в программе Exel. При сортировке по возрастанию было сделано в два раза больше замен, из этого следует, что скорость выполнения программы очень сильно зависит от входных данных. |