Программа Javascript для быстрой сортировки односвязного списка

Опубликовано: 2 Сентября, 2022

Быстрая сортировка в двусвязном списке обсуждается здесь. Быстрая сортировка по односвязному списку дана в качестве упражнения. Важными вещами в реализации являются то, что она изменяет указатели, а не обменивает данные, а временная сложность такая же, как и реализация для двусвязного списка.

В partition() мы рассматриваем последний элемент как точку опоры. Мы проходим по текущему списку, и если узел имеет значение больше, чем точка поворота, мы перемещаем его после хвоста. Если узел имеет меньшее значение, мы сохраняем его в текущей позиции.

В QuickSortRecur() мы сначала вызываем partition(), который помещает точку поворота в правильную позицию и возвращает точку поворота. После того, как точка поворота помещена в правильное положение, мы находим хвостовой узел левой стороны (список перед точкой поворота) и повторяемся для левого списка. Наконец, мы повторяемся для правильного списка.

Выход:

Linked List before sorting 
30 3 4 20 5 
Linked List after sorting 
3 4 5 20 30 

Пожалуйста, обратитесь к полной статье о быстрой сортировке в односвязном списке для получения более подробной информации!