Исследование реализаций алгоритма шейкерной сортировки массива чисел
Заказать уникальную курсовую работу- 33 33 страницы
- 10 + 10 источников
- Добавлена 24.06.2022
- Содержание
- Часть работы
- Список литературы
- Вопросы/Ответы
Введение 3
1. Алгоритм шейкерной сортировки массива чисел 5
1.1. Описание метода 5
1.2. Алгоритм шейкерной сортировки 5
1.3. Сложность алгоритма 8
2. Реализация алгоритма шейкерной сортировки на языках программирования 9
2.1 Реализация шейкерной сортировки на языке Pascal 9
2.2 Реализация шейкерной сортировки на языке С# 11
2.3. Реализация алгоритма шейкерной сортировки на языке C 13
3. Оценка скорости выполнения алгоритма. 16
Заключение 21
Список литературы 22
Приложение 1 23
Приложение 2 26
Приложение 3 30
Collections.Generic;using System.Diagnostics;using System.IO;using System.Linq;using System.Text;using System.Threading.Tasks;namespace CocktailSortConsoleApp{classProgram {staticvoid CocktailSort(refint[] A,refint _change,refint _compare,reflong tm,bool flag) {int firstIndex = 0, lastIndex = A.Length - 1, k = A.Length - 1; _change = 0; _compare = 0;var stopWatch = Stopwatch.StartNew();while (firstIndex < lastIndex) {for (int i = lastIndex; i > firstIndex; i--) {if (A[i] < A[i - 1]){ //обмен _change++; Swap(ref A[i], ref A[i - 1]); k = i; }if (flag) PrintArray(A); _compare++; }if (flag) Console.WriteLine();//уменьшение слева firstIndex = k;for (int i = firstIndex; i < lastIndex; i++) {if (A[i] > A[i + 1]){ //обмен _change++; Swap(ref A[i], ref A[i + 1]); k = i; }if (flag) PrintArray(A); _compare++; }//уменьшение справаif (flag) Console.WriteLine(); lastIndex = k; } stopWatch.Stop(); tm = stopWatch.ElapsedMilliseconds; }privatestaticvoid PrintArray(int[] A) {for (int i = 0; i < A.Length; i++) { Console.Write("{0} ",A[i]); } Console.WriteLine(); }privatestaticvoid CreateArray(refint[] A, int n) {//заполнение массива случайными числами Random rand = new Random(); Array.Resize(ref A, n);for (int i = 0; i
1. Абрамов, В.Г., Введение в язык Pascal : учебное пособие / В.Г. Абрамов, Н.П. Трифонов, Г.Н. Трифонова. – М. : КноРус, 2021. – 380 с.
2. Документация по C# [Электрон. ресурс]. – Режим доступа: https://docs.microsoft.com/ru-ru/dotnet/csharp/ Система PascalABC.NET. [Электронный ресурс] – Режим доступа: http://pascalabc.net/downloads/pabcnethelp/index.htm?page=Common/AdvantagePABC.html (дата обращения 24.05.2022)
3. Казанский А.А. Программирование на Visual C# 2013: учеб. пособие для СПО / А.А. Казанский.- М.: Издательство Юрайт, 2019. – 191 с.
4. Левитин А.В. Алгоритмы: введение в разработку и анализ. : Пер. с англ. – М.: Издательский дом «Вильямс», 2006. – 576 с.
5. Осипов А. В. PascalABC.NET: Введение в современное программирование. – Ростов-на-Дону, 2019 – 572с.
6. Павловская Т. А. С#. Программирование на языке высокого уровня. Учебник для вузов. – СПб.: Питер, 2014. – 432 с: ил.
7. Практика программирования на С# для Windows и Web в Microsoft Visual Studio. [Электрон. ресурс]. – Режим доступа: http://wladm.narod.ru/C_Sharp/index.html (дата обращения 23.05.2022)
8. Система PascalABC.NET. [Электронный ресурс] – Режим доступа: http://pascalabc.net/downloads/pabcnethelp/index.htm?page=Common/AdvantagePABC.html (дата обращения 23.05.2022)
9. Стивенс Р. Алгоритмы. Теория и практическое применение / Род Стивенс. – М.: Издательство «Э», 2016. – 544 с.
10. Тюкачев Н. А., Хлебостроев В. Г. C#. Основы программирования: Учебное пособие. – 3_е изд., стер. – СПб.: Издательство «Лань», 2018. – 272
Вопрос-ответ:
Как работает алгоритм шейкерной сортировки?
Алгоритм шейкерной сортировки, также известный как алгоритм коктейльной сортировки, является усовершенствованной версией сортировки пузырьком. Он работает путем прохода по массиву чисел с двух сторон, сравнивая и меняя соседние элементы до тех пор, пока все элементы не будут отсортированы. При каждом проходе алгоритм перемещает наибольший элемент в конец массива, а затем наименьший элемент в начало массива.
Какова сложность алгоритма шейкерной сортировки?
Сложность алгоритма шейкерной сортировки в худшем случае составляет O(n^2), где n - количество элементов в массиве. Это связано с тем, что алгоритм требует несколько проходов по всем элементам массива и выполнения операций сравнения и перестановки. В лучшем случае, когда массив уже отсортирован, сложность алгоритма составляет O(n), потому что он выполняет только один проход по массиву. В среднем случае сложность алгоритма также составляет O(n^2).
Что такое шейкерная сортировка?
Шейкерная сортировка — это алгоритм сортировки, который использует метод обмена элементов. Он работает путем последовательного перемещения больших элементов вправо и меньших элементов влево, образуя "пузырек". Алгоритм применяет метод сортировки пузырьком в двух направлениях - от начала к концу массива и от конца к началу.
Какой алгоритм используется при шейкерной сортировке?
При шейкерной сортировке используется метод сортировки пузырьком. Этот метод заключается в последовательном проходе по массиву и сравнении соседних элементов. Если элементы расположены в неправильном порядке, они меняются местами. Алгоритм повторяет этот процесс до тех пор, пока массив не будет полностью отсортирован.
В чем сложность алгоритма шейкерной сортировки?
Сложность алгоритма шейкерной сортировки зависит от размера массива, который нужно отсортировать. В лучшем случае, когда массив уже отсортирован, сложность составляет O(n), где n - количество элементов в массиве. В худшем случае, когда массив отсортирован в обратном порядке, сложность составляет O(n^2). В среднем случае сложность алгоритма также близка к O(n^2).
На каких языках программирования можно реализовать шейкерную сортировку?
Шейкерная сортировка может быть реализована на практически любом языке программирования, таком как Pascal, C, C++, Java и других. Ниже приведены примеры реализации алгоритма шейкерной сортировки на языках Pascal и C.
Как быстро выполняется алгоритм шейкерной сортировки?
Скорость выполнения алгоритма шейкерной сортировки зависит от размера массива и его исходного состояния. В худшем случае, когда массив отсортирован в обратном порядке, время выполнения может быть довольно долгим. Однако, в большинстве случаев, шейкерная сортировка может быть достаточно эффективной для сортировки небольших массивов.
Как работает алгоритм шейкерной сортировки?
Алгоритм шейкерной сортировки, также известный как "сортировка перемешиванием", работает следующим образом. Вначале происходит проход снизу вверх по массиву, при котором сравниваются соседние элементы и, если они находятся в неправильном порядке, меняются местами. Затем происходит проход сверху вниз, при котором аналогичным образом сравниваются и меняются местами элементы. Эти два прохода называются фазами. Алгоритм продолжается до тех пор, пока на какой-либо фазе не происходит ни одной перестановки элементов. Это означает, что массив уже отсортирован и алгоритм можно завершить.
На каких языках программирования можно реализовать алгоритм шейкерной сортировки?
Алгоритм шейкерной сортировки можно реализовать на различных языках программирования. В статье приведены примеры реализации на языках Pascal и C. Но этот алгоритм может быть реализован на практически любом языке программирования, так как он основан на простых операциях сравнения и обмена элементов массива. Для реализации алгоритма не требуется использование каких-то специфических возможностей языка, поэтому можно выбрать любой удобный вам язык программирования.