summaryrefslogtreecommitdiff
path: root/content/digarden/pages/20210513013257-алгоритмы.org
blob: 95557082371d560d5e9158d374caddbd357d3463 (plain)
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
: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