Визуализируйте вычислительную сложность двух алгоритмов сортировки, сортировки пузырей и сортировки слиянием, которые сортируют элементы списка в порядке возрастания. Bubble sort - это простой алгоритм сортировки, который многократно просматривает список, сравнивает смежные пары элементов и заменяет элементы, если они находятся в неправильном порядке. Сортировка слиянием - это алгоритм «разделяй и властвуй», который использует преимущества легкости объединения отсортированных сублистов в новый отсортированный список.
В текущей папке сохраните следующий код в bubbleSort.m.
Сохранить следующий код в mergeSort.m.
Создайте следующий класс параметризованного теста, TestSort, который сравнивает производительность алгоритмов сортировки пузырей и сортировки слиянием. len содержит количество элементов списка, которые требуется проверить.
Выполните тесты производительности для всех тестовых элементов, которые соответствуют 'testBubbleSort' и сохраните результаты в Baseline массив. Результаты могут отличаться от показанных.
Running TestSort
.......... .......... .......... .......... ..........
.......... .......... .......... .......... ..........
.......... .......... .......... .......... ..........
.......... .......... .......... .......... ..........
.......... .......... .......... .......... ..........
.......... .......... .....
Done TestSort
__________
Выполнение тестов производительности для всех элементов, соответствующих 'testMergeSort' и сохраните результаты в Measurement массив.
Running TestSort
.......... .......... .......... .......... ..........
.......... .......... .......... .......... ..........
.......... .......... .......... .......... ..........
.......... .......... .......... .......... ..........
Done TestSort
__________
Визуально сравнить минимум MeasuredTime в столбце Samples таблица для каждой соответствующей пары Baseline и Measurement объекты.
На этом графике сравнения большинство точек данных имеют синий цвет, поскольку они находятся ниже закрашенной области подобия. Этот результат показывает превосходную производительность сортировки слиянием для большинства тестовых случаев. Однако для достаточно маленьких списков сортировка пузырей выполняется лучше или сравнима с сортировкой слиянием, как показано оранжевыми и серыми точками на графике.
В качестве резюме сравнения график сообщает об улучшении производительности на 78% из-за сортировки слиянием. Это значение представляет собой среднее геометрическое процента улучшения, соответствующего всем точкам данных. Если график сравнения содержит недопустимые точки данных, сводка сравнения не создается.
Для просмотра подробной информации о сравниваемых результатах измерения времени можно нажать или наведить указатель мыши на любую точку данных.
Чтобы изучить производительность алгоритма сортировки в наихудшем случае для различных длин списков, создайте график сравнения на основе максимума времени измерения выборки.
Уменьшить SimilarityTolerance кому 0.01 при сравнении максимума времени измерения образца. Вернуть ComparisonPlot объект в cp для последующего изменения его свойств.