@@ -5,6 +5,9 @@ Sorting Algorithms in JavaScript
55 + [ Selection Sort] ( #selectionSort )
66 + [ Insertion Sort] ( #insertionSort )
77 + [ Merge Sort] ( #mergeSort )
8+ + [ Quick Sort] ( #quickSort )
9+ + [ Shell Sort] ( #shellSort )
10+ + [ Counting Sort] ( #сountingSort )
811
912
1013## Bubble sort
@@ -64,6 +67,40 @@ Sorting Algorithms in JavaScript
6467По сути, это означает, что вместо работы с массивом в целом он непрерывно разбивает его на две части,
6568пока обе половины не отсортированы, а затем половины объединяются в один решенный список.
6669
67- > Сложность алгоритма: O(n< sup >2</ sup > ).
70+ > Сложность алгоритма: O(n log n ).
6871
6972![ Merge Sort] ( ./public/merge-sort-animation2.gif " Merge sort animation ")
73+
74+ ## Quick Sort
75+
76+ <a name =" quickSort " ></a >
77+
78+ > Сложность алгоритма: O(n<sup >2</sup >).
79+
80+ ![ Quick Sort] ( ./public/quick-sort-animation.gif " Quick sort animation ")
81+
82+ ## Shell Sort
83+
84+ <a name =" shellSort " ></a >Shell Sort «сортировкой по убыванию», улучшает Insertion Sort,
85+ разбивая исходный массив на несколько меньших подмассивов, каждый из которых сортируется с использованием Insertion Sort.
86+ Способ выбора этих подмассивов - уникальность Shell Sort. Вместо того, чтобы разбивать массив на подмассивы смежных элементов,
87+ сортировка оболочки использует интервал * d* , иногда называемый интервал * gap* , для создания подмассива, выбирая все элементы,
88+ которые являются d-ми элементами, отдельно.
89+
90+ + Самый простой пример * d = n / 2* , * d<sub >2</sub > = d / 2 … d<sub >n</sub > = 1* . *** O(n<sup >2</sup >)***
91+ + Предложение Хиббарда: проверить на всем n<sup >i — 1</sup > <= n. *** O(n<sup >3/2</sup >)***
92+ + Числа Седжвика ...
93+
94+ > Сложность алгоритма: O(n<sup >2</sup >) или O(n<sup >3/2</sup >).
95+
96+ ![ Shell Sort] ( ./public/shell-sort.gif " Shell sort animation ")
97+ [ ![ Shell Sort] ( https://img.youtube.com/vi/lvts84Qfo8o/0.jpg )] ( https://www.youtube.com/watch?v=lvts84Qfo8o )
98+
99+ ## Counting Sort
100+
101+ Вначале для каждого элемента массива подсчитывается количество элементов, меньших, чем он, и на основе этой
102+ информации текущий элемент помещается в соответствующее место отсортированного массива.
103+
104+ > Сложность алгоритма: O(n<sup >2</sup >).
105+
106+ ![ Counting Sort] ( ./public/counting-sort-animation.gif " Counting sort animation ")
0 commit comments