1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
:PROPERTIES:
:ID: 190cef43-efe6-4049-9efd-a96bd515878e
:END:
#+title: Алгоритмы
https://algs4.cs.princeton.edu/home/
[[https://www.bigocheatsheet.com/][Сложность структур данных и алгоритмов: инфографика]]
[[https://qph.cf2.quoracdn.net/main-qimg-c2702ecbf207c08ad8aab565d5d831a4-lq][Список алгоритмов картинкой]]
* Quicksort
Создатель быстрой сортировки [[https://ru.wikipedia.org/wiki/%D0%A5%D0%BE%D0%B0%D1%80,_%D0%A7%D0%B0%D1%80%D0%BB%D1%8C%D0%B7_%D0%AD%D0%BD%D1%82%D0%BE%D0%BD%D0%B8_%D0%A0%D0%B8%D1%87%D0%B0%D1%80%D0%B4][Чарлз Хоар]]
** Python
#+begin_src python
global_arr = [3, 1, 2, 5, 4, 7, 9, 8, 10]
def qsort(arr):
if len(arr) == 0:
return arr
middle = arr.pop()
lArr = list(filter(lambda x: x <= middle, arr))
rArr = list(filter(lambda x: x > middle, arr))
print("qsort({}) + [{}] + qsort({}); Array: {} Middle: {}"
.format(lArr, middle, rArr, arr, middle ))
return qsort(lArr) + [middle] + qsort(rArr)
print(global_arr)
qsort(global_arr)
#+end_src
#+RESULTS:
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|