فهرست منبع

Translated everything to line 898

Dimo Dimchev 3 سال پیش
والد
کامیت
719017be03
1فایلهای تغییر یافته به همراه110 افزوده شده و 0 حذف شده
  1. 110 0
      translations/README-bg.md

+ 110 - 0
translations/README-bg.md

@@ -713,6 +713,7 @@
             -   preorder (DFS: self, ляво, дясно)
 
 -   ### Дървета за двоично търсене: BSTs
+
     -   [ ] [Преговор над двоични дървета за търсене (клип)](https://www.youtube.com/watch?v=x6At0nzX92o&index=1&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
     -   [ ] [Въведение (клип)](https://www.coursera.org/learn/data-structures/lecture/E7cXP/introduction)
     -   [ ] [MIT (клип)](https://www.youtube.com/watch?v=9Jry5-82I68)
@@ -739,3 +740,112 @@
         -   [ ] is_binary_search_tree
         -   [ ] delete_value
         -   [ ] get_successor // връща следващата най-голяма стойност след дадената, -1 ако такава не съществува
+
+-   ### Heap / Priority Queue / Binary Heap
+    -   визуализира се като дърво, но обикновенно е линейна структура (масив, свързан списък)
+    -   [ ] [Heap](<https://en.wikipedia.org/wiki/Heap_(data_structure)>)
+    -   [ ] [Въведение (клип)](https://www.coursera.org/learn/data-structures/lecture/2OpTs/introduction)
+    -   [ ] [Наивни имплементации (клип)](https://www.coursera.org/learn/data-structures/lecture/z3l9N/naive-implementations)
+    -   [ ] [Двоични дървета (клип)](https://www.coursera.org/learn/data-structures/lecture/GRV2q/binary-trees)
+    -   [ ] [Tree Height Remark (клип)](https://www.coursera.org/learn/data-structures/supplement/S5xxz/tree-height-remark)
+    -   [ ] [Основни операции (клип)](https://www.coursera.org/learn/data-structures/lecture/0g1dl/basic-operations)
+    -   [ ] [Завършени двоични дървета (клип)](https://www.coursera.org/learn/data-structures/lecture/gl5Ni/complete-binary-trees)
+    -   [ ] [Псевдокод (клип)](https://www.coursera.org/learn/data-structures/lecture/HxQo9/pseudocode)
+    -   [ ] [Heap Sort - jumps to start (клип)](https://youtu.be/odNJmw5TOEE?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3291)
+    -   [ ] [Heap Sort (клип)](https://www.coursera.org/learn/data-structures/lecture/hSzMO/heap-sort)
+    -   [ ] [Създаване на heap (клип)](https://www.coursera.org/learn/data-structures/lecture/dwrOS/building-a-heap)
+    -   [ ] [MIT: Heaps and Heap Sort (клип)](https://www.youtube.com/watch?v=B7hVxCmfPtM&index=4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
+    -   [ ] [CS 61B Lecture 24: Priority Queues (клип)](https://archive.org/details/ucberkeley_webcast_yIUFT6AKBGE)
+    -   [ ] [Linear Time BuildHeap (max-heap)](https://www.youtube.com/watch?v=MiyLo8adrWw)
+    -   [ ] Имплементирайте max-heap:
+        -   [ ] insert
+        -   [ ] sift_up - нужно е за insert
+        -   [ ] get_max - връща най-голямата стойност без да я премахва
+        -   [ ] get_size() - връща броя на елементите
+        -   [ ] is_empty() - връща true ако heap-a не съдържа елементи
+        -   [ ] extract_max - връща най-големия елемент и го премахва
+        -   [ ] sift_down - нужно е за extract_max
+        -   [ ] remove(x) - премахва елемента на индекс x
+        -   [ ] heapify - създава heap от масив от елементи, нужно е за heap_sort
+        -   [ ] heap_sort() - превръща несортиран масив в сортиран такъв, ползвайки max heap или min heap
+
+## Сортиране
+
+-   [ ] Бележки:
+
+    -   Имплементирайте алгоритми за сортиране и знайте сложността в средния/ най-добрия/ най-лошия случай:
+        -   без bubble sort - ужасен алгоритъм е - O(n^2), освен когато n <= 16
+    -   [ ] Стабилност при сортиращите алгоритми ("Стабилен ли е Quicksort?")
+        -   [Стабилност на сортиращите алгоритми](https://en.wikipedia.org/wiki/Sorting_algorithm#Stability)
+        -   [Стабилност на сортиращите алгоритми](http://stackoverflow.com/questions/1517793/stability-in-sorting-algorithms)
+        -   [Стабилност на сортиращите алгоритми](http://www.geeksforgeeks.org/stability-in-sorting-algorithms/)
+        -   [Стабилност на сортиращите алгоритми](http://homepages.math.uic.edu/~leon/cs-mcs401-s08/handouts/stability.pdf)
+    -   [ ] Кои алгоритми могат да се ползват чрез свързани списъци? Кои чрез масиви? Кои чрез двете?
+        -   Не бих препоръчал да сортирате свързан списък, но би станало с merge sort.
+        -   [Merge Sort за свързани списъци](http://www.geeksforgeeks.org/merge-sort-for-linked-list/)
+
+-   За heapsort, вижте Heap структурата от данни по-горе. Heapsort е чудесен, но не е стабилен
+
+-   [ ] [Sedgewick - Mergesort (5 клипа)](https://www.coursera.org/learn/algorithms-part1/home/week/3)
+
+    -   [ ] [1. Mergesort](https://www.coursera.org/learn/algorithms-part1/lecture/ARWDq/mergesort)
+    -   [ ] [2. Bottom up Mergesort](https://www.coursera.org/learn/algorithms-part1/lecture/PWNEl/bottom-up-mergesort)
+    -   [ ] [3. Сортираща сложност](https://www.coursera.org/learn/algorithms-part1/lecture/xAltF/sorting-complexity)
+    -   [ ] [4. Компаратори](https://www.coursera.org/learn/algorithms-part1/lecture/9FYhS/comparators)
+    -   [ ] [5. Стабилност](https://www.coursera.org/learn/algorithms-part1/lecture/pvvLZ/stability)
+
+-   [ ] [Sedgewick - Quicksort (4 клипа)](https://www.coursera.org/learn/algorithms-part1/home/week/3)
+
+    -   [ ] [1. Quicksort](https://www.coursera.org/learn/algorithms-part1/lecture/vjvnC/quicksort)
+    -   [ ] [2. Селекция](https://www.coursera.org/learn/algorithms-part1/lecture/UQxFT/selection)
+    -   [ ] [3. Дублиращи се ключове](https://www.coursera.org/learn/algorithms-part1/lecture/XvjPd/duplicate-keys)
+    -   [ ] [4. System Sorts](https://www.coursera.org/learn/algorithms-part1/lecture/QBNZ7/system-sorts)
+
+-   [ ] UC Berkeley:
+
+    -   [ ] [CS 61B Lecture 29: Sorting I (клип)](https://archive.org/details/ucberkeley_webcast_EiUvYS2DT6I)
+    -   [ ] [CS 61B Lecture 30: Sorting II (клип)](https://archive.org/details/ucberkeley_webcast_2hTY3t80Qsk)
+    -   [ ] [CS 61B Lecture 32: Sorting III (клип)](https://archive.org/details/ucberkeley_webcast_Y6LOLpxg6Dc)
+    -   [ ] [CS 61B Lecture 33: Sorting V (клип)](https://archive.org/details/ucberkeley_webcast_qNMQ4ly43p4)
+
+-   [ ] [Bubble Sort (клип)](https://www.youtube.com/watch?v=P00xJgWzz2c&index=1&list=PL89B61F78B552C1AB)
+-   [ ] [Анализ на Bubble Sort (клип)](https://www.youtube.com/watch?v=ni_zk257Nqo&index=7&list=PL89B61F78B552C1AB)
+-   [ ] [Insertion Sort, Merge Sort (клип)](https://www.youtube.com/watch?v=Kg4bqzAqRBM&index=3&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
+-   [ ] [Insertion Sort (клип)](https://www.youtube.com/watch?v=c4BRHC7kTaQ&index=2&list=PL89B61F78B552C1AB)
+-   [ ] [Merge Sort (клип)](https://www.youtube.com/watch?v=GCae1WNvnZM&index=3&list=PL89B61F78B552C1AB)
+-   [ ] [Quicksort (клип)](https://www.youtube.com/watch?v=y_G9BkAm6B8&index=4&list=PL89B61F78B552C1AB)
+-   [ ] [Selection Sort (клип)](https://www.youtube.com/watch?v=6nDMgr0-Yyo&index=8&list=PL89B61F78B552C1AB)
+
+-   [ ] Код за Merge sort:
+    -   [ ] [Using output array (C)](http://www.cs.yale.edu/homes/aspnes/classes/223/examples/sorting/mergesort.c)
+    -   [ ] [Using output array (Python)](https://github.com/jwasham/practice-python/blob/master/merge_sort/merge_sort.py)
+    -   [ ] [In-place (C++)](https://github.com/jwasham/practice-cpp/blob/master/merge_sort/merge_sort.cc)
+-   [ ] Код за Quick sort:
+
+    -   [ ] [Имплементация (C)](http://www.cs.yale.edu/homes/aspnes/classes/223/examples/randomization/quick.c)
+    -   [ ] [Имплементация (C)](https://github.com/jwasham/practice-c/blob/master/quick_sort/quick_sort.c)
+    -   [ ] [Имплементация (Python)](https://github.com/jwasham/practice-python/blob/master/quick_sort/quick_sort.py)
+
+-   [ ] Имплементирайте:
+
+    -   [ ] Mergesort: O(n log n) сложност в средния/ най-лошия случай
+    -   [ ] Quicksort O(n log n) сложност в средния случай
+    -   Selection sort и insertion sort са със сложност O(n^2) в средния/ най-лошия случай
+    -   За heapsort, вижте Heap структурата от данни нагоре
+
+-   [ ] Не е задължително, но препоръчвам:
+    -   [ ] [Sedgewick - Radix Sorts (6 клипа)](https://www.coursera.org/learn/algorithms-part2/home/week/3)
+        -   [ ] [1. Низове в Java](https://www.coursera.org/learn/algorithms-part2/lecture/vGHvb/strings-in-java)
+        -   [ ] [2. Key Indexed Counting](https://www.coursera.org/learn/algorithms-part2/lecture/2pi1Z/key-indexed-counting)
+        -   [ ] [3. Least Significant Digit First String Radix Sort](https://www.coursera.org/learn/algorithms-part2/lecture/c1U7L/lsd-radix-sort)
+        -   [ ] [4. Most Significant Digit First String Radix Sort](https://www.coursera.org/learn/algorithms-part2/lecture/gFxwG/msd-radix-sort)
+        -   [ ] [5. 3 Way Radix Quicksort](https://www.coursera.org/learn/algorithms-part2/lecture/crkd5/3-way-radix-quicksort)
+        -   [ ] [6. Suffix Arrays](https://www.coursera.org/learn/algorithms-part2/lecture/TH18W/suffix-arrays)
+    -   [ ] [Radix Sort](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#radixSort)
+    -   [ ] [Radix Sort (video)](https://www.youtube.com/watch?v=xhr26ia4k38)
+    -   [ ] [Radix Sort, Counting Sort (linear time given constraints) (video)](https://www.youtube.com/watch?v=Nz1KZXbghj8&index=7&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
+    -   [ ] [Randomization: Matrix Multiply, Quicksort, Freivalds' algorithm (video)](https://www.youtube.com/watch?v=cNB2lADK3_s&index=8&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
+    -   [ ] [Сортиране в линейно време (клип)](https://www.youtube.com/watch?v=pOKy3RZbSws&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf&index=14)
+
+Като обобщение, това е визуализация на [15 алгоритъма за сортиране](https://www.youtube.com/watch?v=kPRA0W1kECg).
+Ако ви трябват повече детайли на тази тема вижте секцията "Сортиране" в[Допълнителни детайли по някои теми](#допълнителни-детайли-по-някои-теми)