Автор оригинала: Team Python Pool.
Понимание Сортировки прядей в Python На примере
Сортировка означает упорядочивание элементов определенным образом. Strand sort-это алгоритм сортировки, который является рекурсивным по своей природе. Он в основном используется для сортировки списка в порядке возрастания. В этой статье мы узнаем, как реализовать strand sort в python.
Алгоритм сортировки прядей в Python:
- Возьмите два списка: input[], output[]
- Возьмите другой список sub[] и переместите в него первый элемент input[]
- Теперь пройдитесь по входному списку[]
- Мы проверим каждый элемент input[] и сравним, больше ли он последнего вставленного элемента в sub[]. Если это правда, то мы добавим этот элемент в sub[]; в противном случае сохраните его во входных данных[]
- Теперь мы объединим sub[] в вывод[]
- Описанные выше два шага будут продолжаться до тех пор, пока все элементы input[] не окажутся в output[]
Исходный код для сортировки прядей:
def strand_sort(inp): (inp) while len(inp): (output, strand(inp)) return output def strand(inp): element,, [inp.pop(0)] while element < len(inp): if inp[element] > sub[-1]: sub.append(inp.pop(element)) else: element return sub def merge(a, b): output = [] while len(a) and len(b): if a[0] < b[0]: output.append(a.pop(0)) else: output.append(b.pop(0)) output output return output inputs = [9,2,0,4,1,8,2,3,7] print("Input List:") print(inputs) (inputs) print("Output List:") print(output)
Объяснение:
функция strand_sort ():
- Эта функция принимает список в в качестве параметра
- В выходном списке он вызывает функцию strand (), передавая мимо параметра
- Затем реализуется цикл while, который используется для слияния многожильного списка с выходным списком.
- Цикл while продолжается до тех пор, пока входной список не опустеет
- Наконец, выходной список возвращается в качестве конечного результата
<функция strong ():
- Эта функция также принимает список в в качестве параметра.
- Две переменные, одно целое число, называемое элементом, инициализируется равным 0. Другая переменная списка sub инициализируется первым элементом входного списка
- Цикл while используется для итерации по списку inp.
- На каждой итерации элемент списка inp сравнивается с последним добавленным элементом подсписка
- если элемент списка inp больше, он переносится в подсписок. В противном случае он игнорируется
- Наконец, возвращается подсписок
функция < strong>merge ():
- Эта функция принимает список a и b (которые должны быть объединены) в качестве параметров
- Используется цикл while, который повторяется до тех пор, пока любой из списков не станет пустым
- Внутри цикла сравниваются элементы как a, так и b, и меньший из них добавляется в выходной список
- После выхода из цикла while любой оставшийся элемент в списке a или b добавляется в выходной список
- Затем возвращается выходной список
Выход:
Сортировка прядей в Python
Временная сложность:
- Лучший случай: O(n)
- Средний случай: O(n2)
- Наихудший случай: O(n2)
Преимущества использования сортировки прядей:
- Это более эффективно, чем алгоритм сортировки выбора
- Коэффициент промаха кэша для сортировки по цепочке меньше, чем для сортировки по оболочке
Недостатки использования сортировки прядей:
- Он не так эффективен в производительности, как быстрая сортировка или сортировка слиянием
- Он имеет сложный алгоритм
Сортировка Прядей Углубленное Учебное Видео
Ссылка на видеоурок href=”https://youtu.be/6F-ZguSqZ0Y”>Нажмите Здесь. href=”https://youtu.be/6F-ZguSqZ0Y”>Нажмите Здесь.
Должен Читать
- Сортировка вставки в Python [Программа, алгоритм, Пример]
- Понимание Python Bubble Sort с примерами
- Алгоритм сортировки оболочки и программа на Python
Вывод:
Именно так можно легко выполнить сортировку прядей по списку в python. Наихудшая временная сложность сортировки прядей равна O(n2), а наилучшая временная сложность – O(n). Реализация такого рода должна осуществляться в соответствии с потребностями и ограничениями и, очевидно, в соответствии с личными предпочтениями человека.
Однако, если у вас есть какие-либо сомнения или вопросы, дайте мне знать в разделе комментариев ниже. Я постараюсь помочь вам как можно скорее.
Счастливого Пифонирования!