From 370652040e83f7d6c543e29a53df90d03cd77e12 Mon Sep 17 00:00:00 2001 From: Aymen Rayane Khouas Date: Tue, 25 Oct 2022 23:46:30 +0100 Subject: [PATCH 01/40] Add more Sorting Algorithms in French (Merge Sort, Selection Sort and Bubble Sort) (#196) * add : Merge Sort translation in french * add : Bubble Sort translation in french * add : Selection Sort translation in french * Apply suggestions from code review Co-authored-by: David Leal * Apply suggestions from code review Co-authored-by: David Leal Co-authored-by: David Leal --- fr/tri/Tri_fusion.md | 59 ++++++++++++++++++++++ fr/tri/Tri_par_selection.md | 63 ++++++++++++++++++++++++ "fr/tri/Tri_\303\240_bulles.md" | 87 +++++++++++++++++++++++++++++++++ 3 files changed, 209 insertions(+) create mode 100644 fr/tri/Tri_fusion.md create mode 100644 fr/tri/Tri_par_selection.md create mode 100644 "fr/tri/Tri_\303\240_bulles.md" diff --git a/fr/tri/Tri_fusion.md b/fr/tri/Tri_fusion.md new file mode 100644 index 00000000..ccf185ea --- /dev/null +++ b/fr/tri/Tri_fusion.md @@ -0,0 +1,59 @@ +# Tri Fusion + +## Description + +### Principe +Le tri fusion, aussi appelé "tri dichotomique" est un Algorithme de tri Stable, qui est basé sur la technique "diviser pour régner". + +### Complexités + +#### Complexités spatiale + +La complexité spatiale de l'algorithme est de `O(n)` + +#### Complexités temporelle + +- meilleur cas : `O(n log n)` +- cas moyens : `O(n log n)` +- pire cas : `O(n log n)` + +## Étapes + +- Trouvez le milieu du tableau et divisez le en deux moitiés en fonction du milieu. +- Appeler récursivement la fonction de tri fusion pour les deux moitiés +- Fusionnez les deux moitiés triées pour obtenir le tableau trié. + +## Exemple + +```txt +tab = [1, 9, 2, 5, 7, 3, 6, 4] + +Divisez le tableau en deux moitiés [1, 9, 2, 5] et [7, 3, 6, 4] + +Les deux moitiés ci-dessus ne sont pas encore triées, donc nous devons les diviser à nouveau en deux moitiés. + +Cette fois, nous obtenons quatre tableaux : [1, 9], [2, 5], [7, 3] et [6, 4]. + +les deux derniers tableaux ne sont toujours pas triés, donc nous les divisons à nouveau en deux moitiés et nous obtenons [7], [3], [6], and [4]. + +Puisqu'un tableau d'un seul élément est trié, nous avons maintenant tous les tableaux triés, il ne nous reste plus qu'à les fusionner de manière appropriée. + +D'abord, les tableaux d'un seul élément seront fusionnés vu qu'ils ont été divisés en dernier, et sont au sommet de la pile de récursion, donc nous obtenons [3,7] et [4,6]. + +Puis la fusion va se produire conformément à la pile de récurrence, [1, 9] et [2, 5] seront fusionnés et donneront [1, 2, 5, 9]. + +De même, [3, 7] et [4, 6] seront fusionnés et donneront [3, 4, 6, 7]. + +Au niveau suivant de la pile, [1, 2, 5, 9] et [3, 4, 6, 7] seront fusionnés et nous obtiendrons le tableau trié final comme [1, 2, 3, 4, 5, 6, 7, 9]. +``` + +## Implémentation + +- [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/merge_sort.py) +- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/MergeSort.java) +- [C](https://github.com/TheAlgorithms/C/blob/master/sorting/merge_sort.c) +- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/sorting/merge_sort.cpp) +- [C-Sharp](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Sorters/Comparison/MergeSorter.cs) +- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/sorting/merge_sort.rb) +- [Go](https://github.com/TheAlgorithms/Go/blob/master/sort/mergesort.go) +- [JavaScript](https://github.com/TheAlgorithms/JavaScript/blob/master/Sorts/MergeSort.js) \ No newline at end of file diff --git a/fr/tri/Tri_par_selection.md b/fr/tri/Tri_par_selection.md new file mode 100644 index 00000000..3e7e016c --- /dev/null +++ b/fr/tri/Tri_par_selection.md @@ -0,0 +1,63 @@ +# Tri par Selection + +## Description + +### Principe + +Le tri par sélection est un algorithme de tri par comparaison, qui malgres sa simplicité est en generale considerer comme ineficasse de fait de sa complexité. + +### Complexités + +#### Complexités spatiale + +- `O(1)` + +#### Complexité temporelle + +- Pire, moyens et meilleur cas : `O(n^2)` + +## Étapes + +- Sélectionner le plus petit élément du tableau +- Le permuter avec le premier élément du tableau +- Puis sélectionner le plus petit élément du tableau dans la liste non triée restante +- Le permuter avec le premier élément du tableau dans la liste non triée restante +- Continuez à faire cela pour chaque élément du tableau + +## Exemple + +```txt + +tab[] = {80, 10, 40, 30} +Indexes : 0 1 2 3 + +1. Index = 0 + Sélectionnez le nombre minimum dans le tableau et son index (index entre 0-3), (la plus petite valeur est 10, et l'index est 1) +2. Permuter les indexe 1 et 0 (valeurs 10 et 80) +3. La nouvelle valeur du tableau est : {10, 80, 40, 30} + +4. Index = 1 + Sélectionnez le nombre minimum dans le tableau et son index (index entre 1-3), (la plus petite valeur est 30, et l'index est 3) +5. Permuter les indexe 3 et 1 (valeurs 30 et 80) +6. La nouvelle valeur du tableau est : {10, 30, 40, 80} + +7. Index = 2 + Sélectionnez le nombre minimum dans le tableau et son index (index entre 2-3), (la plus petite valeur est 40, et l'index est 2) +8. Permuter les indexe 2 et 2 (valeurs 40 et 40) +9. La nouvelle valeur du tableau est : {10, 30, 40, 80} + +Le Tableau est maintenant trié. +``` + +## Implémentation + +- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/SelectionSort.java) +- [C++ Iterative](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/sorting/selection_sort_iterative.cpp) +- [C++ Recursive](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/sorting/selection_sort_recursive.cpp) +- [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/selection_sort.py) +- [Go](https://github.com/TheAlgorithms/Go/blob/master/sort/selectionsort.go) +- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/Sorting/selection_sort.rb) +- [C iterative](https://github.com/TheAlgorithms/C/blob/master/sorting/selection_sort.c) +- [C recursive](https://github.com/TheAlgorithms/C/blob/master/sorting/selection_sort_recursive.c) +- [Scala](https://github.com/TheAlgorithms/Scala/blob/master/src/main/scala/Sort/SelectionSort.scala) +- [TypeScript](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/selectionSort.js) \ No newline at end of file diff --git "a/fr/tri/Tri_\303\240_bulles.md" "b/fr/tri/Tri_\303\240_bulles.md" new file mode 100644 index 00000000..540f37f0 --- /dev/null +++ "b/fr/tri/Tri_\303\240_bulles.md" @@ -0,0 +1,87 @@ +# Tri à bulles + +## Description + +### Principe + +Le principe du tri à bulles est de comparer répétitivement les éléments consécutifs d'un tableau deux à deux, et de les permuter lorsque ces derniers sont mal trié. + +### Complexités + +#### Complexités temporelle + +- Dans le pire des cas, lorsque le plus petit élément est à la fin du tableau, la complexité est de `O(n^2)` +- Dans le meilleur cas, lorsque le tableau est déjà trié, la complexité est de `O(n)` (on n'effectue qu’une seule itération de l'algorithme) +- En moyenne, la complexité est de `O(n^2)` + + +## Étapes + +- Sélectionner le premier élément du tableau +- Le comparer avec l'élément suivant + - Si la valeur du premier élément est plus grande que celle du deuxième, permuter ces derniers. + - Sinon, ne rien faire +- Continuez à faire cela pour chaque index du tableau. +- Répétez les étapes précédentes n fois. + +## Exemple + +```txt +tab[] = {10, 80, 40, 30} +Indexes: 0 1 2 3 + +1. Index = 0, Valeur = 10 +2. 10 < 80, ne rien faire et continuer + +3. Index = 1, Valeur = 80 +4. 80 > 40, permuter 80 et 40 +5. Les nouvelles valeurs du tableau sont : {10, 40, 80, 30} + +6. Index = 2, Valeur = 80 +7. 80 > 30, permuter 80 et 30 +8. Les nouvelles valeurs du tableau sont : {10, 40, 30, 80} + +Répétez les étapes précédentes + +tab[] = {10, 40, 30, 80} +Indexes: 0 1 2 3 + +1. Index = 0, Valeur = 10 +2. 10 < 40, ne rien faire et continuer + +3. Index = 1, Valeur = 40 +4. 40 > 30, permuter 40 et 30 +5. Les nouvelles valeurs du tableau sont : {10, 30, 40, 80} + +6. Index = 2, Valeur = 40 +7. 40 < 80, ne rien faire +8. Les nouvelles valeurs du tableau sont : {10, 30, 40, 80} + +Répétez les étapes précédentes + +tab[] = {10, 30, 40, 80} +Indexes: 0 1 2 3 + +1. Index = 0, Valeur = 10 +2. 10 < 30, ne rien faire et continuer + +3. Index = 1, Valeur = 30 +4. 30 < 40, ne rien faire et continuer + +5. Index = 2, Valeur = 40 +6. 40 < 80, ne rien faire + +Puisqu'il n'y a pas de permutations dans les étapes précédentes, cela signifie que le tableau est trié et que nous pouvons nous arrêter ici. +``` + +## Implémentations + +- [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/bubble_sort.py) +- [C](https://github.com/TheAlgorithms/C/blob/master/sorting/bubble_sort.c) +- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/sorting/bubble_sort.cpp) +- [C-Sharp](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Sorters/Comparison/BubbleSorter.cs) +- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/BubbleSort.java) +- [Go](https://github.com/TheAlgorithms/Go/blob/master/sorts/bubblesort.go) +- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/sorting/bubble_sort.rb) +- [Scala](https://github.com/TheAlgorithms/Scala/blob/master/src/main/scala/Sort/BubbleSort.scala) +- [JavaScript](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/BubbleSort.js) \ No newline at end of file From c8508dbf54d811c5c508d194d3711b2a6618da36 Mon Sep 17 00:00:00 2001 From: Finn Coffey Date: Wed, 26 Oct 2022 10:39:15 +1100 Subject: [PATCH 02/40] Update Playfair explanation (#191) * Fix Playfair example matrices * Change Playfair filler letter to X This matches the Python implementation, the video linked on the page, and most documentation of the Playfair cipher. * Clarify duplicate pairs in Playfair I think this wording is a little clearer when it comes to how double letter digraphs should be handled. Co-authored-by: David Leal Co-authored-by: Vitor Oliveira --- en/Ciphers/playfair-cipher.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/en/Ciphers/playfair-cipher.md b/en/Ciphers/playfair-cipher.md index 83095afd..7e1c3bc1 100644 --- a/en/Ciphers/playfair-cipher.md +++ b/en/Ciphers/playfair-cipher.md @@ -53,21 +53,21 @@ The rules above are used for Encryption. Can be applied vice-versa for Decryptio ``` [m o n a r] [c h y b d] - [e f g k i] + [e f g i k] [l p q s t] [u v w x z] ``` -2. Split the plaintext in digraphs(pair of two). If there is an odd number of letters, a Z is added to the last letter. Pair cannot be made with same letter. Break the letter in single and add a bogus letter to the previous letter. +2. Split the plaintext in digraphs(pair of two). If there is an odd number of letters, an X is added to the last letter. Pairs cannot be made with same letter. If this occurs, split the pair by adding an X between the duplicate letters. ``` - 'in' 'st' 'ru' 'me' 'nt' 'sz' + 'in' 'st' 'ru' 'me' 'nt' 'sx' ``` 3. Now, we need to follow the rules for encrypting and do as follows: ``` - Plain Text: instrumentsz + Plain Text: instrumentsx key: monarchy Encryption: i -> g @@ -80,10 +80,10 @@ The rules above are used for Encryption. Can be applied vice-versa for Decryptio e -> l n -> r t -> q - s -> t - z -> x + s -> x + x -> a ``` -So we will get the encrypted text as **gatlmzclrqtx**. +So we will get the encrypted text as **gatlmzclrqxa**. ### Decryption @@ -92,17 +92,17 @@ So we will get the encrypted text as **gatlmzclrqtx**. ``` [m o n a r] [c h y b d] - [e f g k i] + [e f g i k] [l p q s t] [u v w x z] ``` 2. We need to split the ciphertext as done for plaintext while encrypting ``` - 'ga' 'tl' 'mz' 'cl' 'rq' 'tx' + 'ga' 'tl' 'mz' 'cl' 'rq' 'xa' ``` -3. For the previous Cipher Text **gatlmzclrqtx**, by following the rules we get: +3. For the previous Cipher Text **gatlmzclrqxa**, by following the rules we get: ``` Plain Text: gatlmzclrqtx @@ -113,9 +113,9 @@ So we will get the encrypted text as **gatlmzclrqtx**. mz -> ru cl -> me rq -> nt - tx -> sz + xa -> sx ``` -So we will get the encrypted text as **instrumentsz**. +So we will get the encrypted text as **instrumentsx**. ## Implementations From 0721d6063247391b6cca9acd8348eb13c150a1e7 Mon Sep 17 00:00:00 2001 From: Siva Balan Date: Sat, 29 Oct 2022 05:07:41 +0530 Subject: [PATCH 03/40] Add Finding the Second Largest Element (#198) * Create Find Second Largest Element.md * Update Find Second Largest Element.md * Create Find Second Largest Element.md * Delete Find Second Largest Element.md * Update en/Selection Algorithms/Find Second Largest Element.md Co-authored-by: David Leal * Create Find Second Largest Element.md * Update Find Second Largest Element.md Co-authored-by: David Leal --- .../Find Second Largest Element.md | 74 +++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 en/Selection Algorithms/Find Second Largest Element.md diff --git a/en/Selection Algorithms/Find Second Largest Element.md b/en/Selection Algorithms/Find Second Largest Element.md new file mode 100644 index 00000000..32e21904 --- /dev/null +++ b/en/Selection Algorithms/Find Second Largest Element.md @@ -0,0 +1,74 @@ +# Find Second Largest Element + +#### Problem statement + +Given an unsorted array, write a function to find the second largest element in the array. + +#### Approach + +- Find the largest element in the array by traversing through the array using a loop and store the value in a variable (for ex: a ) +- Assign a variable to store the negative infinite value, which stores the least value (for ex: b ) +- Run a loop from zero to the size of the array. +- Now check whether the current element is greater than variable "b" and also not equal to variable "a", which is the largest number in the array. +- if the above condition is true, then the variable b stores the current element. + +#### Time Complexity + +- Best case: `O(n)` +- Average case: `O(n)` +- Worst case: `O(n)` + +#### Space Complexity + +Worst case: `O(1)` + +#### Example + +```txt +arr = [2, 5, 3, 9, 12, 34, 25] +Indexes: 0 1 2 3 4 5 6 +a = max(arr) +(a = 34) +b = float("-inf") + +Traverse elements from i = 0 to i = 6 +i = 0 +Check if b < arr[i] (arr[0]) and arr[0] != a +True : b = arr[0] (b = 2) + +i = 1 +Check if b < arr[i] (arr[1]) and arr[1] != a +True : b = arr[0] (b = 5) + +i = 2 +Check if b < arr[i] (arr[2]) and arr[2] != a +False : As b = 5 is greater than the current element arr[2] = 3 +continues with the loop + +i = 3 +Check if b < arr[i] (arr[3]) and arr[3] != a +True : b = arr[3] (b = 9) + +i = 4 +Check if b < arr[i] (arr[4]) and arr[4] != a +True : b = arr[4] (b = 12) + +i = 5 +Check if b < arr[i] (arr[5]) and arr[5] != a +False: As current element is equal to the variable "a" which stores the highest value in the array +continues with the loop + +i = 6 +Check if b < arr[i] (arr[6]) and arr[6] != a +True : b = arr[6] (b = 25) + +Now we get the value 25 in the variable "b", which is the second highest value in the array. +``` + +#### Code Implementation Links + +[JavaScript](https://github.com/TheAlgorithms/JavaScript/blob/master/Sorts/FindSecondLargestElement.js) + +#### Video Explanation + +[Video explaining 2 approaches](https://www.youtube.com/watch?v=Mv8jhYQEbkA) From 2a96aaf64bd93c9564dcf68d5584c792868113e2 Mon Sep 17 00:00:00 2001 From: pea-sys <49807271+pea-sys@users.noreply.github.com> Date: Wed, 9 Nov 2022 13:10:56 +0900 Subject: [PATCH 04/40] fix: broken links for Go implementations (#177) Co-authored-by: David Leal --- en/Sorting Algorithms/Bubble Sort.md | 2 +- en/Sorting Algorithms/Heap Sort.md | 2 +- en/Sorting Algorithms/Selection Sort.md | 2 +- en/Sorting Algorithms/Shell Sort.md | 2 +- es/Algoritmos de Ordenamiento/Ordenamiento Burbuja.md | 2 +- es/Algoritmos de Ordenamiento/Ordenamiento Shell.md | 2 +- .../Ordenamiento de mont\303\263n (heap sort).md" | 2 +- .../Ordenamiento de selecci\303\263n.md" | 2 +- "es/Algoritmos de b\303\272squeda/B\303\272squeda binaria.md" | 2 +- "es/Algoritmos de b\303\272squeda/B\303\272squeda lineal.md" | 2 +- .../Subsecuencia com\303\272n m\303\241s larga.md" | 2 +- .../\354\204\240\355\203\235 \354\240\225\353\240\254.md" | 2 +- .../\354\205\270 \354\240\225\353\240\254.md" | 2 +- .../\355\236\231 \354\240\225\353\240\254.md" | 2 +- "pt-br/Algoritmos de Ordena\303\247\303\243o/Bubble Sort.md" | 2 +- "pt-br/Algoritmos de Ordena\303\247\303\243o/Heap Sort.md" | 2 +- "pt-br/Algoritmos de Ordena\303\247\303\243o/Selection Sort.md" | 2 +- "pt-br/Algoritmos de Ordena\303\247\303\243o/Shell Sort.md" | 2 +- 18 files changed, 18 insertions(+), 18 deletions(-) diff --git a/en/Sorting Algorithms/Bubble Sort.md b/en/Sorting Algorithms/Bubble Sort.md index bed31654..79f7a527 100644 --- a/en/Sorting Algorithms/Bubble Sort.md +++ b/en/Sorting Algorithms/Bubble Sort.md @@ -85,7 +85,7 @@ Since there are no swaps in above steps, it means the array is sorted and we can - [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/sorting/bubble_sort.cpp) - [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/bubble_sort.py) - [C-Sharp](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Sorters/Comparison/BubbleSorter.cs) -- [Go](https://github.com/TheAlgorithms/Go/blob/master/sorts/bubblesort.go) +- [Go](https://github.com/TheAlgorithms/Go/blob/master/sort/bubblesort.go) - [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/sorting/bubble_sort.rb) - [C](https://github.com/TheAlgorithms/C/blob/master/sorting/bubble_sort.c) - [Scala](https://github.com/TheAlgorithms/Scala/blob/master/src/main/scala/Sort/BubbleSort.scala) diff --git a/en/Sorting Algorithms/Heap Sort.md b/en/Sorting Algorithms/Heap Sort.md index 455fe239..48625f7d 100644 --- a/en/Sorting Algorithms/Heap Sort.md +++ b/en/Sorting Algorithms/Heap Sort.md @@ -60,7 +60,7 @@ in top down manner. - [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/HeapSort.java) - [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/sorting/heap_sort.cpp) - [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/heap_sort.py) -- [Go](https://github.com/TheAlgorithms/Go/blob/master/sorts/heapsort.go) +- [Go](https://github.com/TheAlgorithms/Go/blob/master/sort/heapsort.go) - [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/sorting/heap_sort.rb) - [C-sharp](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Sorters/Comparison/HeapSorter.cs) - [C](https://github.com/TheAlgorithms/C/blob/master/sorting/heap_sort.c) diff --git a/en/Sorting Algorithms/Selection Sort.md b/en/Sorting Algorithms/Selection Sort.md index c3f4b285..752256f9 100644 --- a/en/Sorting Algorithms/Selection Sort.md +++ b/en/Sorting Algorithms/Selection Sort.md @@ -55,7 +55,7 @@ The array is now sorted. - [C++ Iterative](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/sorting/selection_sort_iterative.cpp) - [C++ Recursive](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/sorting/selection_sort_recursive.cpp) - [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/selection_sort.py) -- [Go](https://github.com/TheAlgorithms/Go/blob/master/sorts/selection_sort.go) +- [Go](https://github.com/TheAlgorithms/Go/blob/master/sort/selectionsort.go) - [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/Sorting/selection_sort.rb) - [C iterative](https://github.com/TheAlgorithms/C/blob/master/sorting/selection_sort.c) - [C recursive](https://github.com/TheAlgorithms/C/blob/master/sorting/selection_sort_recursive.c) diff --git a/en/Sorting Algorithms/Shell Sort.md b/en/Sorting Algorithms/Shell Sort.md index 48c6be16..ddc1664f 100644 --- a/en/Sorting Algorithms/Shell Sort.md +++ b/en/Sorting Algorithms/Shell Sort.md @@ -60,7 +60,7 @@ Initial Gap: 4 - [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/sorting/shell_sort.cpp) - [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/shell_sort.py) - [C-Sharp](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Sorters/Comparison/ShellSorter.cs) -- [Go](https://github.com/TheAlgorithms/Go/blob/master/sorts/shell_sort.go) +- [Go](https://github.com/TheAlgorithms/Go/blob/master/sort/shellsort.go) - [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/Sorting/shell_sort.rb) - [C](https://github.com/TheAlgorithms/C/blob/master/sorting/shell_sort.c) - [Javascript](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/shellSort.js) diff --git a/es/Algoritmos de Ordenamiento/Ordenamiento Burbuja.md b/es/Algoritmos de Ordenamiento/Ordenamiento Burbuja.md index 6b81c545..f546e185 100644 --- a/es/Algoritmos de Ordenamiento/Ordenamiento Burbuja.md +++ b/es/Algoritmos de Ordenamiento/Ordenamiento Burbuja.md @@ -85,7 +85,7 @@ Como no hay intercambios en los pasos de arriba, el arreglo ya se ha ordenado y - [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/Sorting/Bubble%20Sort.cpp) - [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/bubble_sort.py) - [C-Sharp](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Sorters/Comparison/BubbleSorter.cs) -- [Go](https://github.com/TheAlgorithms/Go/blob/master/sorts/bubble_sort.go) +- [Go](https://github.com/TheAlgorithms/Go/blob/master/sort/bubblesort.go) - [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/Sorting/bubble_sort.rb) - [C](https://github.com/TheAlgorithms/C/blob/master/sorting/BubbleSort.c) - [Scala](https://github.com/TheAlgorithms/Scala/blob/master/src/main/scala/Sort/BubbleSort.scala) diff --git a/es/Algoritmos de Ordenamiento/Ordenamiento Shell.md b/es/Algoritmos de Ordenamiento/Ordenamiento Shell.md index a50edf27..d844d8b1 100644 --- a/es/Algoritmos de Ordenamiento/Ordenamiento Shell.md +++ b/es/Algoritmos de Ordenamiento/Ordenamiento Shell.md @@ -61,7 +61,7 @@ Brecha inicial: 4 - [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/Sorting/Shell%20Sort.cpp) - [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/shell_sort.py) - [C-Sharp](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Sorters/Comparison/ShellSorter.cs) -- [Ir](https://github.com/TheAlgorithms/Go/blob/master/sorts/shell_sort.go) +- [Ir](https://github.com/TheAlgorithms/Go/blob/master/sort/shellsort.go) - [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/Sorting/shell_sort.rb) - [C](https://github.com/TheAlgorithms/C/blob/master/sorting/shellSort.c) - [Javascript](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/shellSort.js) diff --git "a/es/Algoritmos de Ordenamiento/Ordenamiento de mont\303\263n (heap sort).md" "b/es/Algoritmos de Ordenamiento/Ordenamiento de mont\303\263n (heap sort).md" index 862cdd81..5007099b 100644 --- "a/es/Algoritmos de Ordenamiento/Ordenamiento de mont\303\263n (heap sort).md" +++ "b/es/Algoritmos de Ordenamiento/Ordenamiento de mont\303\263n (heap sort).md" @@ -60,7 +60,7 @@ El procedimiento de amontonar se llama a sí mismo recursivamente para construir - [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/HeapSort.java) - [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/sorting/heap_sort.cpp) - [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/heap_sort.py) -- [Ir](https://github.com/TheAlgorithms/Go/blob/master/sorts/heapsort.go) +- [Ir](https://github.com/TheAlgorithms/Go/blob/master/sort/heapsort.go) - [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/sorting/heap_sort.rb) - [C-sharp](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Sorters/Comparison/HeapSorter.cs) - [C](https://github.com/TheAlgorithms/C/blob/master/sorting/heap_sort.c) diff --git "a/es/Algoritmos de Ordenamiento/Ordenamiento de selecci\303\263n.md" "b/es/Algoritmos de Ordenamiento/Ordenamiento de selecci\303\263n.md" index 9fd0dc28..c79ece9a 100644 --- "a/es/Algoritmos de Ordenamiento/Ordenamiento de selecci\303\263n.md" +++ "b/es/Algoritmos de Ordenamiento/Ordenamiento de selecci\303\263n.md" @@ -54,7 +54,7 @@ La matriz ahora está ordenada. - [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/SelectionSort.java) - [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/Sorting/Selection%20Sort.cpp) - [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/selection_sort.py) -- [Ir](https://github.com/TheAlgorithms/Go/blob/master/sorts/selection_sort.go) +- [Ir](https://github.com/TheAlgorithms/Go/blob/master/sort/selectionsort.go) - [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/Sorting/selection_sort.rb) - [C](https://github.com/TheAlgorithms/C/blob/master/sorting/SelectionSort.c) - [Scala](https://github.com/TheAlgorithms/Scala/blob/master/src/main/scala/Sort/SelectionSort.scala) diff --git "a/es/Algoritmos de b\303\272squeda/B\303\272squeda binaria.md" "b/es/Algoritmos de b\303\272squeda/B\303\272squeda binaria.md" index d18d0bdd..cb6ce132 100644 --- "a/es/Algoritmos de b\303\272squeda/B\303\272squeda binaria.md" +++ "b/es/Algoritmos de b\303\272squeda/B\303\272squeda binaria.md" @@ -48,7 +48,7 @@ Búsqueda binaria debe devolver -1 dado que 9 no está presente en la matriz - [JavaScript](https://github.com/TheAlgorithms/Javascript/blob/master/Search/BinarySearch.js) - [Haskell](https://github.com/TheAlgorithms/Haskell/blob/master/src/Misc/BinarySearch.hs) - [F-Sharp](https://github.com/TheAlgorithms/F-Sharp/blob/main/Algorithms/Search/BinarySearch.fs) -- [Go](https://github.com/TheAlgorithms/Go/blob/master/searches/binarysearch.go) +- [Go](https://github.com/TheAlgorithms/Go/blob/master/search/binary.go) - [Rust](https://github.com/TheAlgorithms/Rust/blob/master/src/searching/binary_search.rs) - [Dart](https://github.com/TheAlgorithms/Dart/blob/master/search/binary_Search.dart) - [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/Searches/binary_search.rb) diff --git "a/es/Algoritmos de b\303\272squeda/B\303\272squeda lineal.md" "b/es/Algoritmos de b\303\272squeda/B\303\272squeda lineal.md" index 48c97a5d..70808cf6 100644 --- "a/es/Algoritmos de b\303\272squeda/B\303\272squeda lineal.md" +++ "b/es/Algoritmos de b\303\272squeda/B\303\272squeda lineal.md" @@ -41,7 +41,7 @@ La búsqueda lineal debe devolver -1 ya que 6 no está presente en la matriz - [JavaScript](https://github.com/TheAlgorithms/Javascript/blob/master/Search/LinearSearch.js) - [C-Sharp](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Search/LinearSearcher.cs) - [C](https://github.com/TheAlgorithms/C/blob/master/searching/linear_search.c) -- [Go](https://github.com/TheAlgorithms/Go/blob/master/searches/linearsearch.go) +- [Go](https://github.com/TheAlgorithms/Go/blob/master/search/linear.go) - [Rust](https://github.com/TheAlgorithms/Rust/blob/master/src/searching/linear_search.rs) - [Dart](https://github.com/TheAlgorithms/Dart/blob/master/search/linear_Search.dart) - [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/Searches/linear_search.rb) diff --git "a/es/Programaci\303\263n dinamica/Subsecuencia com\303\272n m\303\241s larga.md" "b/es/Programaci\303\263n dinamica/Subsecuencia com\303\272n m\303\241s larga.md" index 1c8eb62e..3b40b70f 100644 --- "a/es/Programaci\303\263n dinamica/Subsecuencia com\303\272n m\303\241s larga.md" +++ "b/es/Programaci\303\263n dinamica/Subsecuencia com\303\272n m\303\241s larga.md" @@ -81,7 +81,7 @@ Así que la longitud de LCS es `dp[4] [4] = 3`. - [Python](https://github.com/TheAlgorithms/Python/blob/master/dynamic_programming/longest_common_subsequence.py) - [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/Dynamic%20Programming/Longest%20Common%20Subsequence.cpp) - [JavaScript](https://github.com/TheAlgorithms/Javascript/blob/master/Dynamic-Programming/LongestCommonSubsequence.js) -- [Go](https://github.com/TheAlgorithms/Go/blob/master/dynamicprogramming/longestCommonSubsequence.go) +- [Go](https://github.com/TheAlgorithms/Go/blob/master/dynamic/longestcommonsubsequence.go) - [Rust](https://github.com/TheAlgorithms/Rust/blob/master/src/dynamic_programming/longest_common_subsequence.rs) #### Explicación en YouTube diff --git "a/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\354\204\240\355\203\235 \354\240\225\353\240\254.md" "b/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\354\204\240\355\203\235 \354\240\225\353\240\254.md" index 073421eb..37ba2860 100644 --- "a/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\354\204\240\355\203\235 \354\240\225\353\240\254.md" +++ "b/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\354\204\240\355\203\235 \354\240\225\353\240\254.md" @@ -52,7 +52,7 @@ The array is now sorted. - [Java](https://github.com/TheAlgorithms/Java/blob/master/Sorts/SelectionSort.java) - [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/Sorting/Selection%20Sort.cpp) - [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/selection_sort.py) -- [Go](https://github.com/TheAlgorithms/Go/blob/master/sorts/selection_sort.go) +- [Go](https://github.com/TheAlgorithms/Go/blob/master/sort/selectionsort.go) - [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/Sorting/selection_sort.rb) - [C](https://github.com/TheAlgorithms/C/blob/master/sorting/SelectionSort.c) - [Scala](https://github.com/TheAlgorithms/Scala/blob/master/src/main/scala/Sort/SelectionSort.scala) diff --git "a/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\354\205\270 \354\240\225\353\240\254.md" "b/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\354\205\270 \354\240\225\353\240\254.md" index a7a32492..6933a3f3 100644 --- "a/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\354\205\270 \354\240\225\353\240\254.md" +++ "b/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\354\205\270 \354\240\225\353\240\254.md" @@ -58,7 +58,7 @@ Initial Gap: 4 - [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/Sorting/Shell%20Sort.cpp) - [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/shell_sort.py) - [C#](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Sorters/Comparison/ShellSorter.cs) -- [Go](https://github.com/TheAlgorithms/Go/blob/master/sorts/shell_sort.go) +- [Go](https://github.com/TheAlgorithms/Go/blob/master/sort/shellsort.go) - [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/Sorting/shell_sort.rb) - [C](https://github.com/TheAlgorithms/C/blob/master/sorting/shellSort.c) - [JavaScript](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/shellSort.js) diff --git "a/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\355\236\231 \354\240\225\353\240\254.md" "b/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\355\236\231 \354\240\225\353\240\254.md" index 8cf6ef8b..adf00c33 100644 --- "a/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\355\236\231 \354\240\225\353\240\254.md" +++ "b/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\355\236\231 \354\240\225\353\240\254.md" @@ -60,7 +60,7 @@ $O(1)$ 최악의 경우 - [파이썬](https://github.com/TheAlgorithms/Python/blob/master/sorts/heap_sort.py) - [고](https://github.com/TheAlgorithms/Go/blob/master/sorts/heapsort.go) - [루비](https://github.com/TheAlgorithms/Ruby/blob/master/sorting/heap_sort.rb) -- [C-sharp](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Sorters/Comparison/HeapSorter.cs) +- [C-Sharp](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Sorters/Comparison/HeapSorter.cs) - [C](https://github.com/TheAlgorithms/C/blob/master/sorting/heap_sort.c) - [자바스크립트](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/HeapSort.js) diff --git "a/pt-br/Algoritmos de Ordena\303\247\303\243o/Bubble Sort.md" "b/pt-br/Algoritmos de Ordena\303\247\303\243o/Bubble Sort.md" index 61ff8707..899adabe 100644 --- "a/pt-br/Algoritmos de Ordena\303\247\303\243o/Bubble Sort.md" +++ "b/pt-br/Algoritmos de Ordena\303\247\303\243o/Bubble Sort.md" @@ -85,7 +85,7 @@ Como não há trocas nas etapas acima, isso significa que a matriz está classif - [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/sorting/bubble_sort.cpp) - [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/bubble_sort.py) - [C-Sharp](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Sorters/Comparison/BubbleSorter.cs) -- [Go](https://github.com/TheAlgorithms/Go/blob/master/sorts/bubblesort.go) +- [Go](https://github.com/TheAlgorithms/Go/blob/master/sort/bubblesort.go) - [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/sorting/bubble_sort.rb) - [C](https://github.com/TheAlgorithms/C/blob/master/sorting/bubble_sort.c) - [Scala](https://github.com/TheAlgorithms/Scala/blob/master/src/main/scala/Sort/BubbleSort.scala) diff --git "a/pt-br/Algoritmos de Ordena\303\247\303\243o/Heap Sort.md" "b/pt-br/Algoritmos de Ordena\303\247\303\243o/Heap Sort.md" index 787fa9ba..2711232b 100644 --- "a/pt-br/Algoritmos de Ordena\303\247\303\243o/Heap Sort.md" +++ "b/pt-br/Algoritmos de Ordena\303\247\303\243o/Heap Sort.md" @@ -60,7 +60,7 @@ O procedimento heapify chama a si mesmo recursivamente para construir heap de ci - [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/HeapSort.java) - [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/sorting/heap_sort.cpp) - [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/heap_sort.py) -- [Go](https://github.com/TheAlgorithms/Go/blob/master/sorts/heapsort.go) +- [Go](https://github.com/TheAlgorithms/Go/blob/master/sort/heapsort.go) - [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/sorting/heap_sort.rb) - [C-sharp](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Sorters/Comparison/HeapSorter.cs) - [C](https://github.com/TheAlgorithms/C/blob/master/sorting/heap_sort.c) diff --git "a/pt-br/Algoritmos de Ordena\303\247\303\243o/Selection Sort.md" "b/pt-br/Algoritmos de Ordena\303\247\303\243o/Selection Sort.md" index bd15d406..eca5f559 100644 --- "a/pt-br/Algoritmos de Ordena\303\247\303\243o/Selection Sort.md" +++ "b/pt-br/Algoritmos de Ordena\303\247\303\243o/Selection Sort.md" @@ -52,7 +52,7 @@ A matriz agora está classificada. - [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/SelectionSort.java) - [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/Sorting/Selection%20Sort.cpp) - [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/selection_sort.py) -- [Go](https://github.com/TheAlgorithms/Go/blob/master/sorts/selection_sort.go) +- [Go](https://github.com/TheAlgorithms/Go/blob/master/sort/selectionsort.go) - [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/Sorting/selection_sort.rb) - [C](https://github.com/TheAlgorithms/C/blob/master/sorting/SelectionSort.c) - [Scala](https://github.com/TheAlgorithms/Scala/blob/master/src/main/scala/Sort/SelectionSort.scala) diff --git "a/pt-br/Algoritmos de Ordena\303\247\303\243o/Shell Sort.md" "b/pt-br/Algoritmos de Ordena\303\247\303\243o/Shell Sort.md" index 7a1372ba..a3c2b469 100644 --- "a/pt-br/Algoritmos de Ordena\303\247\303\243o/Shell Sort.md" +++ "b/pt-br/Algoritmos de Ordena\303\247\303\243o/Shell Sort.md" @@ -58,7 +58,7 @@ Lacuna inicial: 4 - [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/Sorting/Shell%20Sort.cpp) - [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/shell_sort.py) - [C-Sharp](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Sorters/Comparison/ShellSorter.cs) -- [Go](https://github.com/TheAlgorithms/Go/blob/master/sorts/shell_sort.go) +- [Go](https://github.com/TheAlgorithms/Go/blob/master/sort/shellsort.go) - [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/Sorting/shell_sort.rb) - [C](https://github.com/TheAlgorithms/C/blob/master/sorting/shellSort.c) - [Javascript](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/shellSort.js) From c111d4701fe01b7a812e47abc1d6c16f86dc8bdc Mon Sep 17 00:00:00 2001 From: pea-sys <49807271+pea-sys@users.noreply.github.com> Date: Wed, 9 Nov 2022 13:16:57 +0900 Subject: [PATCH 05/40] fix: broken links for JavaScript implementations (#176) Co-authored-by: David Leal --- en/Data Structures/Linked Lists/Circular Linked List.md | 2 +- en/Sorting Algorithms/Bubble Sort.md | 2 +- en/Sorting Algorithms/Selection Sort.md | 2 +- en/Sorting Algorithms/Shell Sort.md | 2 +- es/Algoritmos de Ordenamiento/Ordenamiento Burbuja.md | 2 +- es/Algoritmos de Ordenamiento/Ordenamiento Shell.md | 2 +- .../Ordenamiento de selecci\303\263n.md" | 2 +- ...227\260\352\262\260 \353\246\254\354\212\244\355\212\270.md" | 2 +- .../\354\204\240\355\203\235 \354\240\225\353\240\254.md" | 2 +- .../\354\205\270 \354\240\225\353\240\254.md" | 2 +- "pt-br/Algoritmos de Ordena\303\247\303\243o/Bubble Sort.md" | 2 +- "pt-br/Algoritmos de Ordena\303\247\303\243o/Selection Sort.md" | 2 +- "pt-br/Algoritmos de Ordena\303\247\303\243o/Shell Sort.md" | 2 +- 13 files changed, 13 insertions(+), 13 deletions(-) diff --git a/en/Data Structures/Linked Lists/Circular Linked List.md b/en/Data Structures/Linked Lists/Circular Linked List.md index d75322c3..4c031bd7 100644 --- a/en/Data Structures/Linked Lists/Circular Linked List.md +++ b/en/Data Structures/Linked Lists/Circular Linked List.md @@ -66,7 +66,7 @@ public void insertHead(int data) ## Code Implementation Links -- [JavaScript](https://github.com/TheAlgorithms/Javascript/blob/master/Data-Structures/Linked-List/SingleCircularLinkedList.js.js) +- [JavaScript](https://github.com/TheAlgorithms/JavaScript/blob/master/Data-Structures/Linked-List/SinglyCircularLinkedList.js) - [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/data_structures/cll/cll.cpp) - [Python](https://github.com/TheAlgorithms/Python/blob/master/data_structures/linked_list/circular_linked_list.py) diff --git a/en/Sorting Algorithms/Bubble Sort.md b/en/Sorting Algorithms/Bubble Sort.md index 79f7a527..6e6baddc 100644 --- a/en/Sorting Algorithms/Bubble Sort.md +++ b/en/Sorting Algorithms/Bubble Sort.md @@ -89,7 +89,7 @@ Since there are no swaps in above steps, it means the array is sorted and we can - [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/sorting/bubble_sort.rb) - [C](https://github.com/TheAlgorithms/C/blob/master/sorting/bubble_sort.c) - [Scala](https://github.com/TheAlgorithms/Scala/blob/master/src/main/scala/Sort/BubbleSort.scala) -- [Javascript](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/BubbleSort.js) +- [Javascript](https://github.com/TheAlgorithms/JavaScript/blob/master/Sorts/BubbleSort.js) #### Video Explanation diff --git a/en/Sorting Algorithms/Selection Sort.md b/en/Sorting Algorithms/Selection Sort.md index 752256f9..1b0ef2e0 100644 --- a/en/Sorting Algorithms/Selection Sort.md +++ b/en/Sorting Algorithms/Selection Sort.md @@ -60,7 +60,7 @@ The array is now sorted. - [C iterative](https://github.com/TheAlgorithms/C/blob/master/sorting/selection_sort.c) - [C recursive](https://github.com/TheAlgorithms/C/blob/master/sorting/selection_sort_recursive.c) - [Scala](https://github.com/TheAlgorithms/Scala/blob/master/src/main/scala/Sort/SelectionSort.scala) -- [Javascript](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/selectionSort.js) +- [Javascript](https://github.com/TheAlgorithms/JavaScript/blob/master/Sorts/SelectionSort.js) #### Video Explanation diff --git a/en/Sorting Algorithms/Shell Sort.md b/en/Sorting Algorithms/Shell Sort.md index ddc1664f..93a42164 100644 --- a/en/Sorting Algorithms/Shell Sort.md +++ b/en/Sorting Algorithms/Shell Sort.md @@ -63,7 +63,7 @@ Initial Gap: 4 - [Go](https://github.com/TheAlgorithms/Go/blob/master/sort/shellsort.go) - [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/Sorting/shell_sort.rb) - [C](https://github.com/TheAlgorithms/C/blob/master/sorting/shell_sort.c) -- [Javascript](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/shellSort.js) +- [JavaScript](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/shellSort.js) #### Video Explanation diff --git a/es/Algoritmos de Ordenamiento/Ordenamiento Burbuja.md b/es/Algoritmos de Ordenamiento/Ordenamiento Burbuja.md index f546e185..7f473370 100644 --- a/es/Algoritmos de Ordenamiento/Ordenamiento Burbuja.md +++ b/es/Algoritmos de Ordenamiento/Ordenamiento Burbuja.md @@ -89,7 +89,7 @@ Como no hay intercambios en los pasos de arriba, el arreglo ya se ha ordenado y - [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/Sorting/bubble_sort.rb) - [C](https://github.com/TheAlgorithms/C/blob/master/sorting/BubbleSort.c) - [Scala](https://github.com/TheAlgorithms/Scala/blob/master/src/main/scala/Sort/BubbleSort.scala) -- [Javascript](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/bubblesort.js) +- [Javascript](https://github.com/TheAlgorithms/JavaScript/blob/master/Sorts/BubbleSort.js) #### Explicación en video diff --git a/es/Algoritmos de Ordenamiento/Ordenamiento Shell.md b/es/Algoritmos de Ordenamiento/Ordenamiento Shell.md index d844d8b1..7ae4c0d3 100644 --- a/es/Algoritmos de Ordenamiento/Ordenamiento Shell.md +++ b/es/Algoritmos de Ordenamiento/Ordenamiento Shell.md @@ -64,7 +64,7 @@ Brecha inicial: 4 - [Ir](https://github.com/TheAlgorithms/Go/blob/master/sort/shellsort.go) - [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/Sorting/shell_sort.rb) - [C](https://github.com/TheAlgorithms/C/blob/master/sorting/shellSort.c) -- [Javascript](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/shellSort.js) +- [Javascript](https://github.com/TheAlgorithms/JavaScript/blob/master/Sorts/ShellSort.js) #### Explicación de vídeo diff --git "a/es/Algoritmos de Ordenamiento/Ordenamiento de selecci\303\263n.md" "b/es/Algoritmos de Ordenamiento/Ordenamiento de selecci\303\263n.md" index c79ece9a..d2447869 100644 --- "a/es/Algoritmos de Ordenamiento/Ordenamiento de selecci\303\263n.md" +++ "b/es/Algoritmos de Ordenamiento/Ordenamiento de selecci\303\263n.md" @@ -58,7 +58,7 @@ La matriz ahora está ordenada. - [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/Sorting/selection_sort.rb) - [C](https://github.com/TheAlgorithms/C/blob/master/sorting/SelectionSort.c) - [Scala](https://github.com/TheAlgorithms/Scala/blob/master/src/main/scala/Sort/SelectionSort.scala) -- [Javascript](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/selectionSort.js) +- [Javascript](https://github.com/TheAlgorithms/JavaScript/blob/master/Sorts/SelectionSort.js) #### Explicación de vídeo diff --git "a/ko/\354\236\220\353\243\214\352\265\254\354\241\260/\354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270/\354\233\220\355\230\225 \354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270.md" "b/ko/\354\236\220\353\243\214\352\265\254\354\241\260/\354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270/\354\233\220\355\230\225 \354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270.md" index 623c3f24..b37ad45f 100644 --- "a/ko/\354\236\220\353\243\214\352\265\254\354\241\260/\354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270/\354\233\220\355\230\225 \354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270.md" +++ "b/ko/\354\236\220\353\243\214\352\265\254\354\241\260/\354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270/\354\233\220\355\230\225 \354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270.md" @@ -66,7 +66,7 @@ public void insertHead(int data) ## 구현 -- [JavaScript](https://github.com/TheAlgorithms/Javascript/blob/master/Data-Structures/Linked-List/SingleCircularLinkedList.js.js) +- [JavaScript](https://github.com/TheAlgorithms/JavaScript/blob/master/Data-Structures/Linked-List/SinglyCircularLinkedList.js) - [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/data_structures/cll/cll.cpp) - [Python](https://github.com/TheAlgorithms/Python/blob/master/data_structures/linked_list/circular_linked_list.py) diff --git "a/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\354\204\240\355\203\235 \354\240\225\353\240\254.md" "b/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\354\204\240\355\203\235 \354\240\225\353\240\254.md" index 37ba2860..1c7eccde 100644 --- "a/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\354\204\240\355\203\235 \354\240\225\353\240\254.md" +++ "b/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\354\204\240\355\203\235 \354\240\225\353\240\254.md" @@ -56,7 +56,7 @@ The array is now sorted. - [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/Sorting/selection_sort.rb) - [C](https://github.com/TheAlgorithms/C/blob/master/sorting/SelectionSort.c) - [Scala](https://github.com/TheAlgorithms/Scala/blob/master/src/main/scala/Sort/SelectionSort.scala) -- [JavaScript](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/selectionSort.js) +- [JavaScript](https://github.com/TheAlgorithms/JavaScript/blob/master/Sorts/SelectionSort.js) ## 영상 URL diff --git "a/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\354\205\270 \354\240\225\353\240\254.md" "b/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\354\205\270 \354\240\225\353\240\254.md" index 6933a3f3..ec26cc5f 100644 --- "a/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\354\205\270 \354\240\225\353\240\254.md" +++ "b/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\354\205\270 \354\240\225\353\240\254.md" @@ -61,7 +61,7 @@ Initial Gap: 4 - [Go](https://github.com/TheAlgorithms/Go/blob/master/sort/shellsort.go) - [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/Sorting/shell_sort.rb) - [C](https://github.com/TheAlgorithms/C/blob/master/sorting/shellSort.c) -- [JavaScript](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/shellSort.js) +- [JavaScript](https://github.com/TheAlgorithms/JavaScript/blob/master/Sorts/ShellSort.js) ## 영상 URL diff --git "a/pt-br/Algoritmos de Ordena\303\247\303\243o/Bubble Sort.md" "b/pt-br/Algoritmos de Ordena\303\247\303\243o/Bubble Sort.md" index 899adabe..203a71b1 100644 --- "a/pt-br/Algoritmos de Ordena\303\247\303\243o/Bubble Sort.md" +++ "b/pt-br/Algoritmos de Ordena\303\247\303\243o/Bubble Sort.md" @@ -89,7 +89,7 @@ Como não há trocas nas etapas acima, isso significa que a matriz está classif - [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/sorting/bubble_sort.rb) - [C](https://github.com/TheAlgorithms/C/blob/master/sorting/bubble_sort.c) - [Scala](https://github.com/TheAlgorithms/Scala/blob/master/src/main/scala/Sort/BubbleSort.scala) -- [Javascript](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/BubbleSort.js) +- [Javascript](https://github.com/TheAlgorithms/JavaScript/blob/master/Sorts/BubbleSort.js) #### Explicação em vídeo diff --git "a/pt-br/Algoritmos de Ordena\303\247\303\243o/Selection Sort.md" "b/pt-br/Algoritmos de Ordena\303\247\303\243o/Selection Sort.md" index eca5f559..939366d8 100644 --- "a/pt-br/Algoritmos de Ordena\303\247\303\243o/Selection Sort.md" +++ "b/pt-br/Algoritmos de Ordena\303\247\303\243o/Selection Sort.md" @@ -56,7 +56,7 @@ A matriz agora está classificada. - [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/Sorting/selection_sort.rb) - [C](https://github.com/TheAlgorithms/C/blob/master/sorting/SelectionSort.c) - [Scala](https://github.com/TheAlgorithms/Scala/blob/master/src/main/scala/Sort/SelectionSort.scala) -- [Javascript](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/selectionSort.js) +- [Javascript](https://github.com/TheAlgorithms/JavaScript/blob/master/Sorts/SelectionSort.js) #### Explicação em vídeo diff --git "a/pt-br/Algoritmos de Ordena\303\247\303\243o/Shell Sort.md" "b/pt-br/Algoritmos de Ordena\303\247\303\243o/Shell Sort.md" index a3c2b469..98696eef 100644 --- "a/pt-br/Algoritmos de Ordena\303\247\303\243o/Shell Sort.md" +++ "b/pt-br/Algoritmos de Ordena\303\247\303\243o/Shell Sort.md" @@ -61,7 +61,7 @@ Lacuna inicial: 4 - [Go](https://github.com/TheAlgorithms/Go/blob/master/sort/shellsort.go) - [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/Sorting/shell_sort.rb) - [C](https://github.com/TheAlgorithms/C/blob/master/sorting/shellSort.c) -- [Javascript](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/shellSort.js) +- [Javascript](https://github.com/TheAlgorithms/JavaScript/blob/master/Sorts/ShellSort.js) #### Explicação em vídeo From 12f8a740bd4ed5c89ad2618e7d19f68473fc83b0 Mon Sep 17 00:00:00 2001 From: AnAverageBeing <84959276+AnAverageBeing@users.noreply.github.com> Date: Fri, 17 Feb 2023 22:28:26 +0530 Subject: [PATCH 06/40] Minor formatting improvements in `hill_cipher.md` (#202) --- en/Ciphers/hill_cipher.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/en/Ciphers/hill_cipher.md b/en/Ciphers/hill_cipher.md index cb906838..5c473e47 100644 --- a/en/Ciphers/hill_cipher.md +++ b/en/Ciphers/hill_cipher.md @@ -17,7 +17,7 @@ key:`GYBNQKURP` 1. We have to write key as an `n × n` matrix as ``` - [6 24 1] + [6 24 1] [13 16 10] [20 17 15] ``` @@ -31,7 +31,7 @@ key:`GYBNQKURP` 3. Now, we need to encipher the vector by just multiplying these two matrices ``` - [6 24 1] [0] [67] [15] + [6 24 1] [0] [67] [15] [13 16 10] * [2] = [222] ≈ [4] (mod 26) [20 17 15] [19] [319] [7] ``` @@ -42,14 +42,14 @@ So we will get the encrypted text as **POH**. 1. We need to first inverse our key matrix ``` -1 - [6 24 1] [8 5 10] + [6 24 1] [8 5 10] [13 16 10] ≈ [21 8 21] (mod 26) [20 17 15] [21 12 8] ``` 2. For the previous Cipher Text **POH** ``` - [8 5 10] [15] [260] [0] + [8 5 10] [15] [260] [0] [21 8 21] * [14] ≈ [574] ≈ [2] (mod 26) ≈ ACT [21 12 8] [7] [539] [19] ``` From 6e25a0a3c81a22c5d839f9166d81a11dc95e2a4d Mon Sep 17 00:00:00 2001 From: domix80 Date: Mon, 20 Feb 2023 22:54:38 +0100 Subject: [PATCH 07/40] Add Rust sorting implementation links (#203) * Feat: Add Code Implementation Links Adding Code Implementation Links for Rust * Add missing javascript implementation --- en/Sorting Algorithms/Bubble Sort.md | 1 + en/Sorting Algorithms/Heap Sort.md | 1 + en/Sorting Algorithms/Insertion Sort.md | 1 + en/Sorting Algorithms/Merge Sort.md | 1 + en/Sorting Algorithms/Quick Sort.md | 1 + en/Sorting Algorithms/Radix Sort.md | 6 ++++++ en/Sorting Algorithms/Selection Sort.md | 1 + en/Sorting Algorithms/Shell Sort.md | 2 ++ 8 files changed, 14 insertions(+) diff --git a/en/Sorting Algorithms/Bubble Sort.md b/en/Sorting Algorithms/Bubble Sort.md index 6e6baddc..c1e1cf29 100644 --- a/en/Sorting Algorithms/Bubble Sort.md +++ b/en/Sorting Algorithms/Bubble Sort.md @@ -90,6 +90,7 @@ Since there are no swaps in above steps, it means the array is sorted and we can - [C](https://github.com/TheAlgorithms/C/blob/master/sorting/bubble_sort.c) - [Scala](https://github.com/TheAlgorithms/Scala/blob/master/src/main/scala/Sort/BubbleSort.scala) - [Javascript](https://github.com/TheAlgorithms/JavaScript/blob/master/Sorts/BubbleSort.js) +- [Rust](https://github.com/TheAlgorithms/Rust/blob/master/src/sorting/bubble_sort.rs) #### Video Explanation diff --git a/en/Sorting Algorithms/Heap Sort.md b/en/Sorting Algorithms/Heap Sort.md index 48625f7d..28939b69 100644 --- a/en/Sorting Algorithms/Heap Sort.md +++ b/en/Sorting Algorithms/Heap Sort.md @@ -65,6 +65,7 @@ in top down manner. - [C-sharp](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Sorters/Comparison/HeapSorter.cs) - [C](https://github.com/TheAlgorithms/C/blob/master/sorting/heap_sort.c) - [Javascript](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/HeapSort.js) +- [Rust](https://github.com/TheAlgorithms/Rust/blob/master/src/sorting/heap_sort.rs) #### Video Explanation diff --git a/en/Sorting Algorithms/Insertion Sort.md b/en/Sorting Algorithms/Insertion Sort.md index 4c7c997f..fbb560e7 100644 --- a/en/Sorting Algorithms/Insertion Sort.md +++ b/en/Sorting Algorithms/Insertion Sort.md @@ -57,6 +57,7 @@ and elements from 11 to 13 will move one position ahead of their current positio - [Scala](https://github.com/TheAlgorithms/Scala/blob/master/src/main/scala/Sort/InsertionSort.scala) - [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/insertion_sort.py) - [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/sorting/insertion_sort.rb) +- [Rust](https://github.com/TheAlgorithms/Rust/blob/master/src/sorting/insertion_sort.rs) #### Video Explanation diff --git a/en/Sorting Algorithms/Merge Sort.md b/en/Sorting Algorithms/Merge Sort.md index 25c16f97..1dc4a37c 100644 --- a/en/Sorting Algorithms/Merge Sort.md +++ b/en/Sorting Algorithms/Merge Sort.md @@ -67,6 +67,7 @@ At the next stack level [1, 2, 5, 9] and [3, 4, 6, 7] will be merged and we will - [C-Sharp](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Sorters/Comparison/MergeSorter.cs) - [C](https://github.com/TheAlgorithms/C/blob/master/sorting/merge_sort.c) - [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/sorting/merge_sort.rb) +- [Rust](https://github.com/TheAlgorithms/Rust/blob/master/src/sorting/merge_sort.rs) #### Video Explanation diff --git a/en/Sorting Algorithms/Quick Sort.md b/en/Sorting Algorithms/Quick Sort.md index a08711e4..c66e4711 100644 --- a/en/Sorting Algorithms/Quick Sort.md +++ b/en/Sorting Algorithms/Quick Sort.md @@ -73,6 +73,7 @@ it. - [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/quick_sort.py) - [C](https://github.com/TheAlgorithms/C/blob/master/sorting/quick_sort.c) - [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/sorting/quicksort.rb) +- [Rust](https://github.com/TheAlgorithms/Rust/blob/master/src/sorting/quick_sort.rs) #### Video Explanation diff --git a/en/Sorting Algorithms/Radix Sort.md b/en/Sorting Algorithms/Radix Sort.md index 2db36da8..96de3d4f 100644 --- a/en/Sorting Algorithms/Radix Sort.md +++ b/en/Sorting Algorithms/Radix Sort.md @@ -46,4 +46,10 @@ If we have `log2n` bits for every digit, the running time of Radix appears to be asymptotic notation are higher for Radix Sort and Quick-Sort uses hardware caches more effectively. Also, Radix sort uses counting sort as a subroutine and counting sort takes extra space to sort numbers. +#### Code Implementation Links + +- [Rust](https://github.com/TheAlgorithms/Rust/blob/master/src/sorting/radix_sort.rs) + +#### Video Explanation + Video reference: https://youtu.be/nu4gDuFabIM diff --git a/en/Sorting Algorithms/Selection Sort.md b/en/Sorting Algorithms/Selection Sort.md index 1b0ef2e0..2a0c0644 100644 --- a/en/Sorting Algorithms/Selection Sort.md +++ b/en/Sorting Algorithms/Selection Sort.md @@ -61,6 +61,7 @@ The array is now sorted. - [C recursive](https://github.com/TheAlgorithms/C/blob/master/sorting/selection_sort_recursive.c) - [Scala](https://github.com/TheAlgorithms/Scala/blob/master/src/main/scala/Sort/SelectionSort.scala) - [Javascript](https://github.com/TheAlgorithms/JavaScript/blob/master/Sorts/SelectionSort.js) +- [Rust](https://github.com/TheAlgorithms/Rust/blob/master/src/sorting/selection_sort.rs) #### Video Explanation diff --git a/en/Sorting Algorithms/Shell Sort.md b/en/Sorting Algorithms/Shell Sort.md index 93a42164..c2abfd93 100644 --- a/en/Sorting Algorithms/Shell Sort.md +++ b/en/Sorting Algorithms/Shell Sort.md @@ -64,6 +64,8 @@ Initial Gap: 4 - [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/Sorting/shell_sort.rb) - [C](https://github.com/TheAlgorithms/C/blob/master/sorting/shell_sort.c) - [JavaScript](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/shellSort.js) +- [Rust](https://github.com/TheAlgorithms/Rust/blob/master/src/sorting/shell_sort.rs) + #### Video Explanation From e20294e5beacc740fab79483e96e4c9d92c3274f Mon Sep 17 00:00:00 2001 From: domix80 Date: Mon, 27 Feb 2023 04:20:08 +0100 Subject: [PATCH 08/40] docs: add missing sorting links (#205) * Feat: Adding missing sorting links * chore: apply suggestions from code review --------- Co-authored-by: David Leal --- en/Sorting Algorithms/Bubble Sort.md | 27 +++++++++++++++++++------ en/Sorting Algorithms/Counting Sort.md | 7 +++++++ en/Sorting Algorithms/Heap Sort.md | 20 +++++++++++++----- en/Sorting Algorithms/Insertion Sort.md | 23 ++++++++++++++++++--- en/Sorting Algorithms/Merge Sort.md | 24 +++++++++++++++++++--- en/Sorting Algorithms/Quick Sort.md | 24 ++++++++++++++++++++-- en/Sorting Algorithms/Radix Sort.md | 12 +++++++++++ en/Sorting Algorithms/Selection Sort.md | 27 +++++++++++++++++++------ en/Sorting Algorithms/Shell Sort.md | 14 ++++++++----- 9 files changed, 148 insertions(+), 30 deletions(-) diff --git a/en/Sorting Algorithms/Bubble Sort.md b/en/Sorting Algorithms/Bubble Sort.md index c1e1cf29..665f2bf9 100644 --- a/en/Sorting Algorithms/Bubble Sort.md +++ b/en/Sorting Algorithms/Bubble Sort.md @@ -81,16 +81,31 @@ Since there are no swaps in above steps, it means the array is sorted and we can #### Code Implementation Links -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/BubbleSort.java) +- [Assembly](https://github.com/TheAlgorithms/AArch64_Assembly/blob/main/sorters/bubble_sort.s) +- [C](https://github.com/TheAlgorithms/C/blob/master/sorting/bubble_sort.c) +- [C#](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Sorters/Comparison/BubbleSorter.cs) - [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/sorting/bubble_sort.cpp) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/bubble_sort.py) -- [C-Sharp](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Sorters/Comparison/BubbleSorter.cs) +- [Dart](https://github.com/TheAlgorithms/Dart/blob/master/sort/bubble_Sort.dart) +- [Elixir](https://github.com/TheAlgorithms/Elixir/blob/master/lib/sorting/bubble_sort.ex) +- [Elm](https://github.com/TheAlgorithms/Elm/blob/master/src/Sorting/BubbleSort.elm) +- [F#](https://github.com/TheAlgorithms/F-Sharp/blob/main/Algorithms/Sort/Bubble_Sort.fs) - [Go](https://github.com/TheAlgorithms/Go/blob/master/sort/bubblesort.go) -- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/sorting/bubble_sort.rb) -- [C](https://github.com/TheAlgorithms/C/blob/master/sorting/bubble_sort.c) -- [Scala](https://github.com/TheAlgorithms/Scala/blob/master/src/main/scala/Sort/BubbleSort.scala) +- [Haskell](https://github.com/TheAlgorithms/Haskell/blob/master/src/Sorts/BubbleSort.hs) +- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/BubbleSort.java) - [Javascript](https://github.com/TheAlgorithms/JavaScript/blob/master/Sorts/BubbleSort.js) +- [Julia](https://github.com/TheAlgorithms/Julia/blob/main/src/sorts/bubble_sort.jl) +- [Kotlin](https://github.com/TheAlgorithms/Kotlin/blob/master/src/main/kotlin/sort/BubbleSort.kt) +- [Lua](https://github.com/TheAlgorithms/Lua/blob/main/src/sorting/bubblesort.lua) +- [Matlab](https://github.com/TheAlgorithms/MATLAB-Octave/blob/master/algorithms/sorting/bubble_sort.m) +- [PHP](https://github.com/TheAlgorithms/PHP/blob/master/Sorting/BubbleSort.php) +- [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/bubble_sort.py) +- [R](https://github.com/TheAlgorithms/R/blob/master/sorting_algorithms/bubble_sort.r) +- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/sorting/bubble_sort.rb) - [Rust](https://github.com/TheAlgorithms/Rust/blob/master/src/sorting/bubble_sort.rs) +- [Scala](https://github.com/TheAlgorithms/Scala/blob/master/src/main/scala/Sort/BubbleSort.scala) +- [Solidity](https://github.com/TheAlgorithms/Solidity/blob/main/src/Sorts/BubbleSort.sol) +- [Swift](https://github.com/TheAlgorithms/Swift/blob/master/sorts/BubbleSort.swift) +- [TypeScript](https://github.com/TheAlgorithms/TypeScript/blob/master/sorts/bubble_sort.ts) #### Video Explanation diff --git a/en/Sorting Algorithms/Counting Sort.md b/en/Sorting Algorithms/Counting Sort.md index 3e1f30d2..1fdc7781 100644 --- a/en/Sorting Algorithms/Counting Sort.md +++ b/en/Sorting Algorithms/Counting Sort.md @@ -43,11 +43,18 @@ countingSort(array, size) #### Code Implementation Links +- [Assembly](https://github.com/TheAlgorithms/AArch64_Assembly/blob/main/sorters/counting_sort.s) - [C](https://github.com/TheAlgorithms/C/blob/master/sorting/counting_sort.c) - [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/sorting/counting_sort.cpp) +- [Dart](https://github.com/TheAlgorithms/Dart/blob/master/sort/count_sort.dart) +- [Go](https://github.com/TheAlgorithms/Go/blob/master/sort/countingsort.go) +- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/CountingSort.java) - [JavaScript](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/CountingSort.js) +- [Julia](https://github.com/TheAlgorithms/Julia/blob/main/src/sorts/counting_sort.jl) - [Matlab](https://github.com/TheAlgorithms/MATLAB-Octave/blob/master/algorithms/sorting/counting_sort.m) +- [PHP](https://github.com/TheAlgorithms/PHP/blob/master/Sorting/CountSort.php) - [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/counting_sort.py) +- [R](https://github.com/TheAlgorithms/R/blob/master/sorting_algorithms/counting_sort.r) - [Rust](https://github.com/TheAlgorithms/Rust/blob/master/src/sorting/counting_sort.rs) #### Video Explanation diff --git a/en/Sorting Algorithms/Heap Sort.md b/en/Sorting Algorithms/Heap Sort.md index 28939b69..55a73d3b 100644 --- a/en/Sorting Algorithms/Heap Sort.md +++ b/en/Sorting Algorithms/Heap Sort.md @@ -57,15 +57,25 @@ in top down manner. #### Code Implementation Links -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/HeapSort.java) +- [Assembly](https://github.com/TheAlgorithms/AArch64_Assembly/blob/main/sorters/heap_sort.s) +- [C](https://github.com/TheAlgorithms/C/blob/master/sorting/heap_sort.c) +- [C#](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Sorters/Comparison/HeapSorter.cs) - [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/sorting/heap_sort.cpp) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/heap_sort.py) +- [Dart](https://github.com/TheAlgorithms/Dart/blob/master/sort/heap_Sort.dart) +- [F#](https://github.com/TheAlgorithms/F-Sharp/blob/main/Algorithms/Sort/Heap_Sort.fs) - [Go](https://github.com/TheAlgorithms/Go/blob/master/sort/heapsort.go) -- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/sorting/heap_sort.rb) -- [C-sharp](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Sorters/Comparison/HeapSorter.cs) -- [C](https://github.com/TheAlgorithms/C/blob/master/sorting/heap_sort.c) +- [Haskell](https://github.com/TheAlgorithms/Haskell/blob/master/src/Sorts/InsertionSort.hs) +- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/HeapSort.java) - [Javascript](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/HeapSort.js) +- [Julia](https://github.com/TheAlgorithms/Julia/blob/main/src/sorts/heap_sort.jl) +- [Kotlin](https://github.com/TheAlgorithms/Kotlin/blob/master/src/main/kotlin/sort/HeapSort.kt) +- [Lua](https://github.com/TheAlgorithms/Lua/blob/main/src/sorting/heapsort.lua) +- [Matlab](https://github.com/TheAlgorithms/MATLAB-Octave/blob/master/algorithms/sorting/heap_sort.m) +- [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/heap_sort.py) +- [R](https://github.com/TheAlgorithms/R/blob/master/sorting_algorithms/heap_sort.r) +- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/sorting/heap_sort.rb) - [Rust](https://github.com/TheAlgorithms/Rust/blob/master/src/sorting/heap_sort.rs) +- [Scala](https://github.com/TheAlgorithms/Scala/blob/master/src/main/scala/Sort/HeapSort.scala) #### Video Explanation diff --git a/en/Sorting Algorithms/Insertion Sort.md b/en/Sorting Algorithms/Insertion Sort.md index fbb560e7..6356815c 100644 --- a/en/Sorting Algorithms/Insertion Sort.md +++ b/en/Sorting Algorithms/Insertion Sort.md @@ -50,14 +50,31 @@ and elements from 11 to 13 will move one position ahead of their current positio #### Code Implementation Links -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/InsertionSort.java) +- [Assembly](https://github.com/TheAlgorithms/AArch64_Assembly/blob/main/sorters/insertion_sort.s) - [C](https://github.com/TheAlgorithms/C/blob/master/sorting/insertion_sort.c) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/sorting/insertion_sort.cpp) - [C#](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Sorters/Comparison/InsertionSorter.cs) -- [Scala](https://github.com/TheAlgorithms/Scala/blob/master/src/main/scala/Sort/InsertionSort.scala) +- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/sorting/insertion_sort.cpp) +- [Dart](https://github.com/TheAlgorithms/Dart/blob/master/sort/insert_Sort.dart) +- [Elixir](https://github.com/TheAlgorithms/Elixir/blob/master/lib/sorting/insertion_sort.ex) +- [Elm](https://github.com/TheAlgorithms/Elm/blob/master/src/Sorting/InsertionSort.elm) +- [F#](https://github.com/TheAlgorithms/F-Sharp/blob/main/Algorithms/Sort/Insertion_Sort.fs) +- [Go](https://github.com/TheAlgorithms/Go/blob/master/sort/insertionsort.go) +- [Haskell](https://github.com/TheAlgorithms/Haskell/blob/master/src/Sorts/InsertionSort.hs) +- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/InsertionSort.java) +- [JavaScript](https://github.com/TheAlgorithms/JavaScript/blob/master/Sorts/InsertionSort.js) +- [Julia](https://github.com/TheAlgorithms/Julia/blob/main/src/sorts/insertion_sort.jl) +- [Kotlin](https://github.com/TheAlgorithms/Kotlin/blob/master/src/main/kotlin/sort/InsertionSort.kt) +- [Lua](https://github.com/TheAlgorithms/Lua/blob/main/src/sorting/insertionsort.lua) +- [Matlab](https://github.com/TheAlgorithms/MATLAB-Octave/blob/master/algorithms/sorting/insertion_sort.m) +- [PHP](https://github.com/TheAlgorithms/PHP/blob/master/Sorting/InsertionSort.php) - [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/insertion_sort.py) +- [R](https://github.com/TheAlgorithms/R/blob/master/sorting_algorithms/insertion_sort.r) - [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/sorting/insertion_sort.rb) - [Rust](https://github.com/TheAlgorithms/Rust/blob/master/src/sorting/insertion_sort.rs) +- [Scala Iterative](https://github.com/TheAlgorithms/Scala/blob/master/src/main/scala/Sort/InsertionSort.scala) +- [Scala Recursive](https://github.com/TheAlgorithms/Scala/blob/master/src/main/scala/Sort/RecursiveInsertionSort.scala) +- [Swift](https://github.com/TheAlgorithms/Swift/blob/master/sorts/InsertionSort.swift) +- [TypeScript](https://github.com/TheAlgorithms/TypeScript/blob/master/sorts/insertion_sort.ts) #### Video Explanation diff --git a/en/Sorting Algorithms/Merge Sort.md b/en/Sorting Algorithms/Merge Sort.md index 1dc4a37c..b2619591 100644 --- a/en/Sorting Algorithms/Merge Sort.md +++ b/en/Sorting Algorithms/Merge Sort.md @@ -61,13 +61,31 @@ At the next stack level [1, 2, 5, 9] and [3, 4, 6, 7] will be merged and we will #### Code Implementation Links -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/MergeSort.java) +- [Assembly](https://github.com/TheAlgorithms/AArch64_Assembly/blob/main/sorters/merge_sort.s) +- [C](https://github.com/TheAlgorithms/C/blob/master/sorting/merge_sort.c) +- [C#](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Sorters/Comparison/MergeSorter.cs) - [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/sorting/merge_sort.cpp) +- [Dart](https://github.com/TheAlgorithms/Dart/blob/master/sort/merge_sort.dart) +- [Elixir](https://github.com/TheAlgorithms/Elixir/blob/master/lib/sorting/merge_sort.ex) +- [Elm](https://github.com/TheAlgorithms/Elm/blob/master/src/Sorting/MergeSort.elm) +- [F#](https://github.com/TheAlgorithms/F-Sharp/blob/main/Algorithms/Sort/Merge_Sort.fs) +- [Go](https://github.com/TheAlgorithms/Go/blob/master/sort/mergesort.go) +- [Haskell](https://github.com/TheAlgorithms/Haskell/blob/master/src/Sorts/MergeSort.hs) +- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/MergeSort.java) +- [JavaScript](https://github.com/TheAlgorithms/JavaScript/blob/master/Sorts/MergeSort.js) +- [Julia](https://github.com/TheAlgorithms/Julia/blob/main/src/sorts/merge_sort.jl) +- [Kotlin](https://github.com/TheAlgorithms/Kotlin/blob/master/src/main/kotlin/sort/MergeSort.kt) +- [Lua](https://github.com/TheAlgorithms/Lua/blob/main/src/sorting/mergesort.lua) +- [Matlab](https://github.com/TheAlgorithms/MATLAB-Octave/blob/master/algorithms/sorting/merge_sort.m) +- [PHP](https://github.com/TheAlgorithms/PHP/blob/master/Sorting/MergeSort.php) - [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/merge_sort.py) -- [C-Sharp](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Sorters/Comparison/MergeSorter.cs) -- [C](https://github.com/TheAlgorithms/C/blob/master/sorting/merge_sort.c) +- [R](https://github.com/TheAlgorithms/R/blob/master/sorting_algorithms/merge_sort.r) - [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/sorting/merge_sort.rb) - [Rust](https://github.com/TheAlgorithms/Rust/blob/master/src/sorting/merge_sort.rs) +- [Scala](https://github.com/TheAlgorithms/Scala/blob/master/src/main/scala/Sort/MergeSort.scala) +- [Solidity](https://github.com/TheAlgorithms/Solidity/blob/main/src/Sorts/MergeSort.sol) +- [Swift](https://github.com/TheAlgorithms/Swift/blob/master/sorts/MergeSort.swift) +- [TypeScript](https://github.com/TheAlgorithms/TypeScript/blob/master/sorts/merge_sort.ts) #### Video Explanation diff --git a/en/Sorting Algorithms/Quick Sort.md b/en/Sorting Algorithms/Quick Sort.md index c66e4711..bbd9b65e 100644 --- a/en/Sorting Algorithms/Quick Sort.md +++ b/en/Sorting Algorithms/Quick Sort.md @@ -68,12 +68,32 @@ it. #### Code Implementation Links -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/QuickSort.java) +- [Assembly](https://github.com/TheAlgorithms/AArch64_Assembly/blob/main/sorters/quick_sort.s) +- [C](https://github.com/TheAlgorithms/C/blob/master/sorting/quick_sort.c) +- [C#](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Sorters/Comparison/QuickSorter.cs) - [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/sorting/quick_sort.cpp) +- [Dart](https://github.com/TheAlgorithms/Dart/blob/master/sort/quick_Sort.dart) +- [Elixir](https://github.com/TheAlgorithms/Elixir/blob/master/lib/sorting/quick_sort.ex) +- [F#](https://github.com/TheAlgorithms/F-Sharp/blob/main/Algorithms/Sort/Quick_Sort.fs) +- [Go](https://github.com/TheAlgorithms/Go/blob/master/sort/quicksort.go) +- [Haskell](https://github.com/TheAlgorithms/Haskell/blob/master/src/Sorts/QuickSort.hs) +- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/QuickSort.java) +- [JavaScript Iterative](https://github.com/TheAlgorithms/JavaScript/blob/master/Sorts/QuickSort.js) +- [JavaScript Recursive](https://github.com/TheAlgorithms/JavaScript/blob/master/Sorts/QuickSortRecursive.js) +- [Julia](https://github.com/TheAlgorithms/Julia/blob/main/src/sorts/quick_sort.jl) +- [Kotlin](https://github.com/TheAlgorithms/Kotlin/blob/master/src/main/kotlin/sort/QuickSort.kt) +- [Lua](https://github.com/TheAlgorithms/Lua/blob/main/src/sorting/quicksort.lua) +- [Matlab](https://github.com/TheAlgorithms/MATLAB-Octave/blob/master/algorithms/sorting/quick_sort.m) +- [OCaml](https://github.com/TheAlgorithms/OCaml/blob/master/Sorts/quicksort.ml) +- [PHP](https://github.com/TheAlgorithms/PHP/blob/master/Sorting/QuickSort.php) - [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/quick_sort.py) -- [C](https://github.com/TheAlgorithms/C/blob/master/sorting/quick_sort.c) +- [R](https://github.com/TheAlgorithms/R/blob/master/sorting_algorithms/quick_sort.r) - [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/sorting/quicksort.rb) - [Rust](https://github.com/TheAlgorithms/Rust/blob/master/src/sorting/quick_sort.rs) +- [Scala](https://github.com/TheAlgorithms/Scala/blob/master/src/main/scala/Sort/QuickSort.scala) +- [Solidity](https://github.com/TheAlgorithms/Solidity/blob/main/src/Sorts/QuickSort.sol) +- [Swift](https://github.com/TheAlgorithms/Swift/blob/master/sorts/QuickSort.swift) +- [TypeScript](https://github.com/TheAlgorithms/TypeScript/blob/master/sorts/quick_sort.ts) #### Video Explanation diff --git a/en/Sorting Algorithms/Radix Sort.md b/en/Sorting Algorithms/Radix Sort.md index 96de3d4f..d7490790 100644 --- a/en/Sorting Algorithms/Radix Sort.md +++ b/en/Sorting Algorithms/Radix Sort.md @@ -48,6 +48,18 @@ takes extra space to sort numbers. #### Code Implementation Links +- [Assembly](https://github.com/TheAlgorithms/AArch64_Assembly/blob/main/sorters/radix_sort.s) +- [C](https://github.com/TheAlgorithms/C/blob/master/sorting/radix_sort.c) +- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/sorting/radix_sort.cpp) +- [Dart](https://github.com/TheAlgorithms/Dart/blob/master/sort/radix_sort.dart) +- [Go](https://github.com/TheAlgorithms/Go/blob/master/sort/radixsort.go) +- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/RadixSort.java) +- [JavaScript](https://github.com/TheAlgorithms/JavaScript/blob/master/Sorts/RadixSort.js) +- [Lua](https://github.com/TheAlgorithms/Lua/blob/main/src/sorting/radixsort.lua) +- [PHP](https://github.com/TheAlgorithms/PHP/blob/master/Sorting/RadixSort.php) +- [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/radix_sort.py) +- [R](https://github.com/TheAlgorithms/R/blob/master/sorting_algorithms/radix_sort.r) +- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/sorting/radix_sort.rb) - [Rust](https://github.com/TheAlgorithms/Rust/blob/master/src/sorting/radix_sort.rs) #### Video Explanation diff --git a/en/Sorting Algorithms/Selection Sort.md b/en/Sorting Algorithms/Selection Sort.md index 2a0c0644..f9552f04 100644 --- a/en/Sorting Algorithms/Selection Sort.md +++ b/en/Sorting Algorithms/Selection Sort.md @@ -51,17 +51,32 @@ The array is now sorted. #### Code Implementation Links -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/SelectionSort.java) +- [Assembly](https://github.com/TheAlgorithms/AArch64_Assembly/blob/main/sorters/selection_sort.s) +- [C iterative](https://github.com/TheAlgorithms/C/blob/master/sorting/selection_sort.c) +- [C recursive](https://github.com/TheAlgorithms/C/blob/master/sorting/selection_sort_recursive.c) +- [C#](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Sorters/Comparison/SelectionSorter.cs) - [C++ Iterative](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/sorting/selection_sort_iterative.cpp) - [C++ Recursive](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/sorting/selection_sort_recursive.cpp) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/selection_sort.py) +- [Dart](https://github.com/TheAlgorithms/Dart/blob/master/sort/select_Sort.dart) +- [Elixir](https://github.com/TheAlgorithms/Elixir/blob/master/lib/sorting/selection_sort.ex) +- [Elm](https://github.com/TheAlgorithms/Elm/blob/master/src/Sorting/SelectionSort.elm) - [Go](https://github.com/TheAlgorithms/Go/blob/master/sort/selectionsort.go) -- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/Sorting/selection_sort.rb) -- [C iterative](https://github.com/TheAlgorithms/C/blob/master/sorting/selection_sort.c) -- [C recursive](https://github.com/TheAlgorithms/C/blob/master/sorting/selection_sort_recursive.c) -- [Scala](https://github.com/TheAlgorithms/Scala/blob/master/src/main/scala/Sort/SelectionSort.scala) +- [Haskell](https://github.com/TheAlgorithms/Haskell/blob/master/src/Sorts/SelectionSort.hs) +- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/SelectionSort.java) - [Javascript](https://github.com/TheAlgorithms/JavaScript/blob/master/Sorts/SelectionSort.js) +- [Julia](https://github.com/TheAlgorithms/Julia/blob/main/src/sorts/selection_sort.jl) +- [Kotlin](https://github.com/TheAlgorithms/Kotlin/blob/master/src/main/kotlin/sort/SelectionSort.kt) +- [Lua](https://github.com/TheAlgorithms/Lua/blob/main/src/sorting/selectionsort.lua) +- [Matlab](https://github.com/TheAlgorithms/MATLAB-Octave/blob/master/algorithms/sorting/select_sort.m) +- [PHP](https://github.com/TheAlgorithms/PHP/blob/master/Sorting/SelectionSort.php) +- [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/selection_sort.py) +- [R](https://github.com/TheAlgorithms/R/blob/master/sorting_algorithms/selection_sort.r) +- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/Sorting/selection_sort.rb) - [Rust](https://github.com/TheAlgorithms/Rust/blob/master/src/sorting/selection_sort.rs) +- [Scala](https://github.com/TheAlgorithms/Scala/blob/master/src/main/scala/Sort/SelectionSort.scala) +- [Solidity](https://github.com/TheAlgorithms/Solidity/blob/main/src/Sorts/SelectionSort.sol) +- [Swift](https://github.com/TheAlgorithms/Swift/blob/master/sorts/SelectionSort.swift) +- [TypeScript](https://github.com/TheAlgorithms/TypeScript/blob/master/sorts/selection_sort.ts) #### Video Explanation diff --git a/en/Sorting Algorithms/Shell Sort.md b/en/Sorting Algorithms/Shell Sort.md index c2abfd93..06e59764 100644 --- a/en/Sorting Algorithms/Shell Sort.md +++ b/en/Sorting Algorithms/Shell Sort.md @@ -56,14 +56,18 @@ Initial Gap: 4 #### Code Implementation Links -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/ShellSort.java) +- [Assembly](https://github.com/TheAlgorithms/AArch64_Assembly/blob/main/sorters/shell_sort.s) +- [C](https://github.com/TheAlgorithms/C/blob/master/sorting/shell_sort.c) +- [C#](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Sorters/Comparison/ShellSorter.cs) - [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/sorting/shell_sort.cpp) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/shell_sort.py) -- [C-Sharp](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Sorters/Comparison/ShellSorter.cs) +- [Dart](https://github.com/TheAlgorithms/Dart/blob/master/sort/shell_Sort.dart) - [Go](https://github.com/TheAlgorithms/Go/blob/master/sort/shellsort.go) -- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/Sorting/shell_sort.rb) -- [C](https://github.com/TheAlgorithms/C/blob/master/sorting/shell_sort.c) +- [Haskell](https://github.com/TheAlgorithms/Haskell/blob/master/src/Sorts/ShellSort.hs) +- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/ShellSort.java) - [JavaScript](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/shellSort.js) +- [Matlab](https://github.com/TheAlgorithms/MATLAB-Octave/blob/master/algorithms/sorting/shell_sort.m) +- [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/shell_sort.py) +- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/Sorting/shell_sort.rb) - [Rust](https://github.com/TheAlgorithms/Rust/blob/master/src/sorting/shell_sort.rs) From d8c2cb04ec9a17b6d45549fa0cb4d679ea47696b Mon Sep 17 00:00:00 2001 From: Roman <1992roman@list.ru> Date: Mon, 27 Feb 2023 20:46:53 +0200 Subject: [PATCH 09/40] Add the Russian language (#206) * init russian language * init russian language --- ru/README.md | 31 +++++++++++ ...20\237\320\276\320\270\321\201\320\272.md" | 55 +++++++++++++++++++ 2 files changed, 86 insertions(+) create mode 100644 ru/README.md create mode 100644 "ru/\320\220\320\273\320\263\320\276\321\200\320\270\321\202\320\274\321\213 \320\237\320\276\320\270\321\201\320\272\320\260/\320\221\320\270\320\275\320\260\321\200\320\275\321\213\320\271 \320\237\320\276\320\270\321\201\320\272.md" diff --git a/ru/README.md b/ru/README.md new file mode 100644 index 00000000..71964fa8 --- /dev/null +++ b/ru/README.md @@ -0,0 +1,31 @@ +# Имя алгоритма + +Напишите краткое описание алгоритма, например: + +1. Временная сложность +2. Пространственная сложность +3. Приложения +4. Имя основателя +5. и т.д. + +## Шаги + +Опишите алгоритм в ясных, простых и понятных шагах. + +## Пример + +Проконтролируйте алгоритм на примере входных данных. + +## Реализация + +Ссылки на реализацию на языках программирования. + +ПРИМЕЧАНИЕ: Ссылка должна быть только в других репозиториях этой организации. + +## URL-адрес видео + +Прикрепите URL-адрес видео, объясняющего алгоритм. + +## Другие + +Любая другая информация всегда приветствуется и должна быть включена в этот раздел. diff --git "a/ru/\320\220\320\273\320\263\320\276\321\200\320\270\321\202\320\274\321\213 \320\237\320\276\320\270\321\201\320\272\320\260/\320\221\320\270\320\275\320\260\321\200\320\275\321\213\320\271 \320\237\320\276\320\270\321\201\320\272.md" "b/ru/\320\220\320\273\320\263\320\276\321\200\320\270\321\202\320\274\321\213 \320\237\320\276\320\270\321\201\320\272\320\260/\320\221\320\270\320\275\320\260\321\200\320\275\321\213\320\271 \320\237\320\276\320\270\321\201\320\272.md" new file mode 100644 index 00000000..a30caf0a --- /dev/null +++ "b/ru/\320\220\320\273\320\263\320\276\321\200\320\270\321\202\320\274\321\213 \320\237\320\276\320\270\321\201\320\272\320\260/\320\221\320\270\320\275\320\260\321\200\320\275\321\213\320\271 \320\237\320\276\320\270\321\201\320\272.md" @@ -0,0 +1,55 @@ +# Бинарный поиск (алгоритм "разделяй и властвуй") + +#### Постановка задачи + +Дан остортированный массив из `n` элементов. Написать функцию поиска индекса заданного (целевого) элемента. + +#### Подход + +- Поиск массива путем многократного деления массива на половины. +- Изначально рассмотрим фактический массив и выберем элемент в среднем индексе. +- Сохраняем нижний индекс (0) и верхний индекс (длина массива). +- Если элемент равен целевому элементу, то возвращаем индекс. +- Если элемент больше целевого элемента, то рассматриваем только левую половину массива (нижний индекс = 0, верхний индекс = `middle - 1`). +- Если элемент меньше целевого элемента, то рассматриваем только правую половину массива (нижний индекс = `middle + 1`, верхний индекс = длина массива). +- Возвращаем `-(индекс вставки + 1)`, если целевой элемент не найден в массиве (если нижний индекс больше или равен верхнему индексу). Некоторые более простые реализации просто возвращают `-1`, если элемент не найден. Смещение 1 должно быть добавлено, так как индекс вставки может быть `0` (искомое значение может быть меньше всех элементов в массиве). Поскольку индексация начинается с `0`, это должно быть отличимо от случая, когда целевой элемент имеет индекс `0`. + +#### Временная сложность + +- O(log n) - в худшем случае; +- O(1) - в лучшем случае (если средний элемент изначального массива является целевым элементом). + +##### Пространственная сложность + +- O(1) - для итеративного подхода; +- O(1) - для рекурсивного подхода если используется оптимизация хвостовых вызовов, `O(log n)` из-за стека вызовов рекурсии в противном случае. + +#### Пример + +```python +arr = [1,2,3,4,5,6,7] + +target = 2 +``` + +Изначально элемент в среднем индексе - `4`, который больше `2`. Поэтому мы ищем левую половину массива, т. е. `[1,2,3]`. + +Здесь мы находим средний элемент, равный целевому элементу, поэтому возвращаем его индекс, т. е. `1`. + +``` +target = 9 +``` + +#### Ссылки на реализации алгоритма + +- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/searches/BinarySearch.java) +- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/search/binary_search.cpp) +- [Python](https://github.com/TheAlgorithms/Python/blob/master/searches/binary_search.py) +- [C-Sharp](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Search/BinarySearcher.cs) +- [C](https://github.com/TheAlgorithms/C/blob/master/searching/binary_search.c) + +#### Видео обзоры + +#### Визуальное представление + +- [Tute Board](https://boardhub.github.io/tute/?wd=binarySearchAlgo2) From 8821b68df9e10618f624ae214b32ee6ddaf9c6e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lars=20M=C3=BCller?= <34514239+appgurueu@users.noreply.github.com> Date: Wed, 1 Mar 2023 03:38:59 +0100 Subject: [PATCH 10/40] Add Euclidean algorithm (#201) Co-authored-by: David Leal --- en/Basic Math/Euclidean algorithm.md | 92 ++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 en/Basic Math/Euclidean algorithm.md diff --git a/en/Basic Math/Euclidean algorithm.md b/en/Basic Math/Euclidean algorithm.md new file mode 100644 index 00000000..d104998a --- /dev/null +++ b/en/Basic Math/Euclidean algorithm.md @@ -0,0 +1,92 @@ +# Euclidean algorithm + +## Problem + +Find the Greatest Common Divisor (GCD) of two positive integers $a$ and $b$, which is defined as the largest number $g = gcd(a, b)$ such that $g$ divides both $a$ and $b$ without remainder. + +## Idea + +The Euclidean algorithm is based on the simple observation that the GCD of two numbers doesn't change if the smaller number is subtracted from the larger number: + +Let $a > b$. Let $g$ be the GCD of $a$ and $b$. +Then $g$ divides $a$ and $b$. Thus $g$ also divides $a - b$. + +Let $g'$ be the GCD of $b$ and $a - b$. + +Proof by contradiction that $g' = g$: + +Assume $g' < g$ or $g' > g$. + +If $g' < g$, $g'$ would not be the *greatest* common divisor, +since $g$ is also a common divisor of $a - b$ and $b$. + +If $g' > g$, $g'$ divides $b$ and $a - b$ - +that is, there exist integers $n, m$ +such that $g'n = b$ and $g'm = a - b$. +Thus $g'm = a - g'n \iff g'm + g'n = a \iff g'(m + n) = a$. +This imples that $g' > g$ also divides $a$, +which contradicts the initial assumption that $g$ is the GCD of $a$ and $b$. + +## Implementation + +To speed matters up in practice, modulo division is used instead of repeated subtractions: +$b$ can be subtracted from $a$ as long as $a >= b$. +After these subtractions only the remainder of $a$ when divided by $b$ remains. + +A straightforward Lua implementation might look as follows: + +```lua +function gcd(a, b) + while b ~= 0 do + a, b = b, a % b + end + return a +end +``` + +note that `%` is the modulo/remainder operator; +`a` is assigned to the previous value of `b`, +and `b` is assigned to the previous value of `a` +modulo the previous value of `b` in each step. + +## Analysis + +### Space Complexity + +The space complexity can trivially be seen to be constant: +Only two numbers (of assumed constant size), $a$ and $b$, need to be stored. + +### Time Complexity + +Each iteration of the while loop runs in constant time and at least halves $b$. +Thus $O(log_2(n))$ is an upper bound for the runtime. + +## Walkthrough + +Finding the GCD of $a = 42$ and $b = 12$: + +1. $42 \mod 12 = 6$ +2. $12 \mod 6 = 0$ + +The result is $gcd(42, 12) = 6$. + +Finding the GCD of $a = 633$ and $b = 142$ using the Euclidean algorithm: + +1. $633 \mod 142 = 65$ +2. $142 \mod 65 = 12$ +3. $65 \mod 12 = 5$ +4. $12 \mod 5 = 2$ +5. $5 \mod 2 = 1$ +6. $2 \mod 1 = 0$ + +The result is $gcd(633, 142) = 1$: $a$ and $b$ are co-prime. + +## Applications + +* Shortening fractions +* Finding the Least Common Multiple (LCM) +* Efficiently checking whether two numbers are co-prime (needed e.g. for the RSA cryptosystem) + +## Resources + +* [Wikipedia Article](https://en.wikipedia.org/wiki/Euclidean_algorithm) From e7c0852504e0479015b1b15a72e7bedc4130aeb6 Mon Sep 17 00:00:00 2001 From: Roman <1992roman@list.ru> Date: Tue, 7 Mar 2023 00:24:28 +0200 Subject: [PATCH 11/40] [ru]: add Dutch National Flag Sort algo (#207) Co-authored-by: David Leal --- ...20\260\320\275\320\264\320\276\320\262.md" | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 "ru/\320\220\320\273\320\263\320\276\321\200\320\270\321\202\320\274\321\213 \320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\270/\320\244\320\273\320\260\320\263 \320\235\320\270\320\264\320\265\321\200\320\273\320\260\320\275\320\264\320\276\320\262.md" diff --git "a/ru/\320\220\320\273\320\263\320\276\321\200\320\270\321\202\320\274\321\213 \320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\270/\320\244\320\273\320\260\320\263 \320\235\320\270\320\264\320\265\321\200\320\273\320\260\320\275\320\264\320\276\320\262.md" "b/ru/\320\220\320\273\320\263\320\276\321\200\320\270\321\202\320\274\321\213 \320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\270/\320\244\320\273\320\260\320\263 \320\235\320\270\320\264\320\265\321\200\320\273\320\260\320\275\320\264\320\276\320\262.md" new file mode 100644 index 00000000..a14615a7 --- /dev/null +++ "b/ru/\320\220\320\273\320\263\320\276\321\200\320\270\321\202\320\274\321\213 \320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\270/\320\244\320\273\320\260\320\263 \320\235\320\270\320\264\320\265\321\200\320\273\320\260\320\275\320\264\320\276\320\262.md" @@ -0,0 +1,39 @@ +# Задача флага Нидерландов + +#### Постановка задачи + +Дан массив с несколькими цветами (красный, белый и синий), нужно упорядочить его таким образом, чтобы все цвета были сгруппированы вместе. Мы будем использовать целые числа `0`, `1` и `2` для представления красного, белого и синего цветов соответственно. + +Нужно отсортировать массив на месте без использования дополнительной памяти и стандартной функции сортировки. + +#### Алгоритм + +1. Создайте три указателя - `low`, `mid` и `high`. +1. Установите `low` и `mid` в начало массива, а `high` в конец массива. +1. Сравните `nums[mid]` со значением `1`. + - Если `nums[mid]` равен 1, просто увеличьте mid. + - Если `nums[mid]` равен 0, поменяйте `nums[mid]` и `nums[low]`, а затем увеличьте `mid` и `low` на 1. + - Если `nums[mid]` равен 2, поменяйте `nums[mid]` и `nums[high]`, а затем уменьшите `high` на 1. +1. Продолжайте шаги 3 до тех пор, пока `mid <= high`. + +#### Временная сложность + +- O(n) + +#### Пространственная сложность + +- O(1) + +#### Пример + +```python +nums = [2, 0, 2, 1, 1, 0] + +print(dutch_flag_sort(nums)) +# Output: [0, 0, 1, 1, 2, 2] +``` + +#### Ссылки на реализации алгоритма + +- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/DutchNationalFlagSort.java) +- [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/dutch_national_flag_sort.py) From 11be6beb770f1a8fc3a1256760770b2fe05e18c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lars=20M=C3=BCller?= <34514239+appgurueu@users.noreply.github.com> Date: Tue, 7 Mar 2023 23:08:42 +0100 Subject: [PATCH 12/40] Add contributing guidelines (#199) * Add contributing guidelines * Recommend dashes instead of asterisks for lists * Elaborate on heading hierarchy * Elaborate on structure * Link to Euclidean Algo as example for good explanation --------- Co-authored-by: David Leal --- CONTRIBUTING.md | 64 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..91f50958 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,64 @@ +# Contributing Guidelines + +## Legal + +Contributions must be all your own work; plagiarism is not allowed. +By submitting a pull request, you agree to license your contribution +under the [license of this repository](https://github.com/TheAlgorithms/Algorithms-Explanation/blob/master/LICENSE.md). + +## Translations + +Translations go in the appropriate folder named by the locale code. + +Do not change the structure or formatting of the original (English) explanation when translating or updating translations. +You may change number formatting to fit the locale +(`42.33` may be formatted as `42,33` in a german translation for instance) +as long as it doesn't create ambiguities +(e.g. `[42,33, 13]` in an array would be disallowed and should either remain `[42.33, 13]` or use a different delimiter `[42,33; 13]`). + +## Writing Explanations + +See the [explanation of the Euclidean Algorithm](en/Basic%20Math/Euclidean%20algorithm.md) +for an example of how a good explanation may look like. + +### Structure + +You should structure your explanations using headings. +The top-level heading should be the name of the algorithm or data structure to be explained + +Subsequent sub-headings *may* be: + +1. Problem solved by the algorithm +2. Design/approach of the algorithm +3. Detailed (yet not too technical) description of the algorithm, usually including (pseudo)-code +4. Analysis (proof of correctness, best/worst/average cases, time & space complexity) +5. Walkthrough(s) of how the algorithm processes example input(s) +6. Application(s) of the algorithm +7. Further resources such as reference implementations, videos or other explanations + +### Capitalization + +- Use *Title Case* for headings. +- Start new sentences with a capital letter. + +### Typographical Conventions + +- Leave a space after punctuation such as `.`, `!`, `?`, `,`, `;` or `:`. +- Add a space before and after `-`. **Do not add a space before punctuation.** +- Add a space before an opening parenthesis `(`. Do not add a space before the closing parenthesis `)`. +- Add spaces around (but not inside) quotes. Use single quotes for quotes within quotes. + +### Markdown Conventions + +[GitHub-flavored Markdown is used](https://github.github.com/gfm/). Explanations should render well when viewed from GitHub. + +- **Do not add redundant formatting.** Formatting should always be meaningful. + If you apply a certain formatting to all elements of a certain kind (e.g. adding emphasis around all headings), you're doing something wrong. +- Use ATX-style "hashtag" headings: `#`, `##`, `###`, `####`, `#####`, `######` rather than Setext-style "underline" headings. + Leave blank lines around headings. The first heading should always be `# Title`. Subheadings must be exactly one level deeper than their parents. +- Indent lists by two blanks. Prefer `-` over `*` for bulleted lists. Enumerate numbered lists correctly, starting at `1`. +- Use fenced code blocks (and specify the correct language) rather than using indented code blocks. + Format code inside fenced code blocks properly (prefer pseudocode over code though). Leave blank lines around fenced code blocks. +- Use named links `[name](link)` rather than relying on automatic link detection or using `<>`-links. + There are rarely good reasons to not give a link a descriptive name. +- Use HTML only if necessary (rarely - if ever - the case). Do not use HTML for unnecessary formatting. From 1aab79dce3e489e0ab2dcb22dc6701eef65a9c63 Mon Sep 17 00:00:00 2001 From: David Leal Date: Thu, 9 Mar 2023 15:26:40 -0600 Subject: [PATCH 13/40] Add a pull request template (#208) * Add a pull request template * Add link to CoC and contributing guidelines * Removee top comments --- .github/PULL_REQUEST_TEMPLATE.md | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 .github/PULL_REQUEST_TEMPLATE.md diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 00000000..54904a21 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,31 @@ +### Description + + + + +Closes #{ISSUE_ID} + +### Checklist + +- [ ] A description of the changes in this PR is mentioned above. +- [ ] All the new and existing checks pass. +- [ ] No plagiarized, duplicated, or repetitive documentation that has been directly copied from another source. +- [ ] If it's a new explanation, it contains solid, understandable, and accessible information. +- [ ] I have read the whole [contributing guidelines](https://github.com/TheAlgorithms/Algorithms-Explanation/blob/master/CONTRIBUTING.md) and agree to the [Code of Conduct](https://github.com/TheAlgorithms/.github/blob/master/CODE_OF_CONDUCT.md). + +### Screenshots (if any) + + + +### Note to reviewers + + From 6f3c08168d9a963abbd596ef6a00b32926ab99e5 Mon Sep 17 00:00:00 2001 From: Jahnab Dutta <76475829+JahnabDutta@users.noreply.github.com> Date: Wed, 29 Mar 2023 01:24:55 +0530 Subject: [PATCH 14/40] Vigenere Cipher Explanation added in English language (#210) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * added vignere cipher explanation * added relation to ceaser cipher and fixed typos * Fix some typos, improve formatting & wording a bit * Fix accidental loss of mod n * Fix links Co-authored-by: David Leal * Fix typo Co-authored-by: David Leal --------- Co-authored-by: Lars Müller <34514239+appgurueu@users.noreply.github.com> Co-authored-by: David Leal --- en/Ciphers/vigenere_cipher.md | 69 +++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 en/Ciphers/vigenere_cipher.md diff --git a/en/Ciphers/vigenere_cipher.md b/en/Ciphers/vigenere_cipher.md new file mode 100644 index 00000000..04360074 --- /dev/null +++ b/en/Ciphers/vigenere_cipher.md @@ -0,0 +1,69 @@ +# Vigenere Cipher + +The Vigenere cipher is a famous toy cipher. It was invented in 1553 by the Italian cryptographer Giovan Battista Bellaso but for centuries was attributed to the 16th-century French cryptographer Blaise de Vigenère, who devised a similar cipher in 1586. + +It is easy to encrypt and decrypt but at the same time, it is easy to intercept and crack this cipher. It is a polyalphabetic substitution cipher, meaning that the same letter of the alphabet can be replaced by different letters depending on the key. The key is a word or phrase that is repeated to match the length of the message. Then the letters of the key are used to shift the letters of the message. + +## Improvement over Caesar cipher + +The Vigenere cipher is an improvement over the Caesar cipher. The Caesar cipher uses a single character as the key to shift the message. In contrast, the Vigenere cipher uses a word or a phrase as the key. This means that the same character occurring at different positions in the message will be shifted by different amounts. This makes it harder to crack the cipher. + +## Setup + +1. Choose the message space you are going to use. In our case, we will use all lowercase letters of the English language. But we can use ASCII characters as well. Let us denote the size of the message space as $n$. In our case, $n = 26$. +2. Assign a numerical value to each letter of the message space. For example, $a=1, b=2, c=3$ and so on. +3. Choose a key. + +## Encryption + +1. Repeat the key to match the length of the message. For example, if the message is `checktheking` and the key is `chess`, the key is repeated to match the length of the message. The key is now `chesschessch`. +2. Now, the letters of the key are used to shift the letters of the message. Let $a$ be $1$, $b$ be $2$ and so on. Then, the message is encrypted using the following formula: $C_i = (V(M_i) + V(K_i)) \mod n$ where $C_i$ is the encrypted letter at position $i$, $V(M_i)$ is the numerical value of the letter at position $i$ and $V(K_i)$ is the numerical value of the letter at position $i$, and $n$ is the size of the message space. + +| Message | c | h | e | c | k | t | h | e | k | i | n | g | +|---------|---|---|---|---|---|---|---|---|---|---|---|---| +| Value | 3 | 8 | 5 | 3 | 11| 20| 8 | 5 | 11| 9 | 14| 7 | +| Key | c | h | e | s | s | c | h | e | s | s | c | h | +| Shift | 3 | 8 | 5 | 19| 19| 3 | 8 | 5 | 19| 19| 3 | 8 | +| Cipher | f | p | j | q | z | w | p | j | z | z | c | p | + +So the encrypted message is `fpjqzwjpzzcp`. + +## Decryption + +Decryption is the inverse of encryption. It is is done by subtracting the shift value from the cipher value. The formula is $M_i = L((C_i - V(K_i)) \mod n)$ where everything is defined as above and $L$ is additionally defined as a function which converts a numerical value back to a letter. + +| Cipher | f | p | j | q | z | w | p | j | z | z | c | p | +|---------|---|---|---|---|---|---|---|---|---|---|---|---| +| Key | c | h | e | s | s | c | h | e | s | s | c | h | +| Shift | 3 | 8 | 5 | 19| 19| 3 | 8 | 5 | 19| 19| 3 | 8 | +| Value | 3 | 8 | 5 | 3 | 11| 20| 8 | 5 | 11| 9 | 14| 7 | +| Message | c | h | e | c | k | t | h | e | k | i | n | g | + +So the decrypted message is `checktheking`, as expected. + +## Complexity Analysis + +### Encryption + +The encryption is done by adding the shift value to the message value. So the **time complexity is $O(n)$** where $n$ is the length of the message. +We use a linear data structure such as an array to store the message and the key. So the **space complexity is $O(n)$**. + +### Decryption + +Decryption is similar to encryption (except for the subtraction operation). +**So time and space complexity are the same as for encryption - $O(n)$**. + +## Cryptanalysis and caution + +1. **It is a toy cipher. It is easy to crack. It is not secure.** +2. There are several key (length) finding methods such as + - [Kasiski examination](https://en.wikipedia.org/wiki/Kasiski_examination) + - [Index of coincidence](https://en.wikipedia.org/wiki/Index_of_coincidence) +3. Once the key length is found, [frequency analysis](https://en.wikipedia.org/wiki/Frequency_analysis) can be used to find the key and hence crack the cipher. +4. Therefore, this cipher should not be used to encrypt any important data. + +## Implementations + +- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/ciphers/vigenere_cipher.cpp) +- [Python](https://github.com/TheAlgorithms/Python/blob/master/ciphers/vigenere_cipher.py) +- [JavaScript](https://github.com/TheAlgorithms/JavaScript/blob/master/Ciphers/VigenereCipher.js) From fd69c673350a818bfd2b3900b0d361e41efa879b Mon Sep 17 00:00:00 2001 From: David Leal Date: Sun, 23 Apr 2023 00:29:08 -0600 Subject: [PATCH 15/40] Update the code owners --- .github/CODEOWNERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 6a5baae5..22dfbfc7 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -7,4 +7,4 @@ # Order is important. The last matching pattern has the most precedence. -* @vbrazo @Panquesito7 @AnupKumarPanwar @ashwek @appgurueu +* @vbrazo @Panquesito7 @appgurueu From 70de058e325ceeaa07ae74aa46b2ffe5c9376460 Mon Sep 17 00:00:00 2001 From: Minseon Kim Date: Tue, 25 Apr 2023 03:47:19 +0900 Subject: [PATCH 16/40] Add Korean translation (#209) * added stack in ko data structure * added Fractional Knapsack in ko Greedy Algorithms --------- Co-authored-by: David Leal --- ...0\353\202\255 \353\254\270\354\240\234.md" | 44 +++++++++++++++++++ .../\354\212\244\355\203\235.md" | 27 ++++++++++++ 2 files changed, 71 insertions(+) create mode 100644 "ko/\352\267\270\353\246\254\353\224\224 \354\225\214\352\263\240\353\246\254\354\246\230/\353\266\204\355\225\240 \352\260\200\353\212\245\355\225\234 \353\260\260\353\202\255 \353\254\270\354\240\234.md" create mode 100644 "ko/\354\236\220\353\243\214\352\265\254\354\241\260/\354\212\244\355\203\235/\354\212\244\355\203\235.md" diff --git "a/ko/\352\267\270\353\246\254\353\224\224 \354\225\214\352\263\240\353\246\254\354\246\230/\353\266\204\355\225\240 \352\260\200\353\212\245\355\225\234 \353\260\260\353\202\255 \353\254\270\354\240\234.md" "b/ko/\352\267\270\353\246\254\353\224\224 \354\225\214\352\263\240\353\246\254\354\246\230/\353\266\204\355\225\240 \352\260\200\353\212\245\355\225\234 \353\260\260\353\202\255 \353\254\270\354\240\234.md" new file mode 100644 index 00000000..bbf4b9c6 --- /dev/null +++ "b/ko/\352\267\270\353\246\254\353\224\224 \354\225\214\352\263\240\353\246\254\354\246\230/\353\266\204\355\225\240 \352\260\200\353\212\245\355\225\234 \353\260\260\353\202\255 \353\254\270\354\240\234.md" @@ -0,0 +1,44 @@ +# 배낭 문제 (그리디 알고리즘) + +#### 문제 + +무게와 가치가 정해진 항목들의 집합이 주어졌을 때, 주어진 최대 무게 내에서 가치가 최대가 되도록 하는 항목의 수를 찾아라. + +##### 그리디 알고리즘은 분할 가능한 배낭 문제에서 항상 최적해를 제공한다. + +#### 시간 복잡도 + +최악: $O(nlog n)$ + +#### 예시 + +``` +배낭의 최대 무게 W = 60 +value = [280, 100, 120, 120] +weight = [40, 10, 20, 24] + +Ratio(V/W) = 7,10,6,5 +각 항목을 A,B,C,D라 하자. + +먼저 항목들을 가치와 무게의 비율을 기준으로 내림차순으로 정렬한다. +B는 배낭의 용량보다 작기 때문에 첫 번째로 선택된다. 다음으로, 남은 용량이 A의 무게보다 크기 때문에 A가 선택된다. +배낭의 남은 용량이 C의 무게보다 작기 때문에 C는 전체 항목을 선택할 수 없다. +따라서 C는 (60-50)/20의 비율만큼 일부만 선택된다. +이제 배낭의 용량은 지정된 항목들의 무게와 동일해서 더 이상 항목을 선택할 수 없다. + +선택된 물건들의 총 무게는 10+40+20*(10/20) = 60이다. + +총 이익은 100+280+120*(10/20) = 380+60 = 440이다. + +이것이 가장 적합한 선택이다. 다른 항목을 조합하여 더 많은 돈을 버는 것은 불가능하다. +``` + +#### 구현 + +- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/greedy_algorithms/knapsack.cpp) +- [Python](https://github.com/TheAlgorithms/Python/tree/master/knapsack) +- [C-Sharp](https://github.com/TheAlgorithms/C-Sharp/tree/master/Algorithms/Knapsack) + +#### 영상 URL + +[A CS50 video explaining the Greedy Algorithm](https://www.youtube.com/watch?v=Ou9OA0yQCYA) diff --git "a/ko/\354\236\220\353\243\214\352\265\254\354\241\260/\354\212\244\355\203\235/\354\212\244\355\203\235.md" "b/ko/\354\236\220\353\243\214\352\265\254\354\241\260/\354\212\244\355\203\235/\354\212\244\355\203\235.md" new file mode 100644 index 00000000..50106851 --- /dev/null +++ "b/ko/\354\236\220\353\243\214\352\265\254\354\241\260/\354\212\244\355\203\235/\354\212\244\355\203\235.md" @@ -0,0 +1,27 @@ +# 스택 + +스택은 객체에 접근하는 순서가 정해진 기본적인 선형 데이터 구조이다. 이 순서는 LIFO (Last In First Out) 또는 FILO (First in Last Out)라고 불린다. 대표적인 스택 예시로는 식당의 접시, 쌓인 책 더미, 프링글스 상자 등이 있다. +스택은 파서 및 식 평가, 백트래킹 알고리즘 등을 구현하는 데 사용된다. 기본 작업은 스택에 요소를 넣는 것(push)과 스택에서 요소를 빼는 것(pop)이다. +연결 리스트 또는 리스트 배열을 사용하여 구현할 수 있다. 스택은 가장 위에 있는 요소를 가리키는 "top 포인터" 하나만 가진다. 삽입과 삭제는 스택의 한쪽 끝에서만 발생한다. + +# 표준 스택 연산자 + +1) push(): 스택의 맨 위에 요소 삽입 +2) pop(): 스택의 맨 위에 있는 요소 삭제 +3) isEmpty(): 스택이 비어 있는지 여부 확인 +4) isFull(): 스택이 가득 찼는지 여부 확인 +5) peek(): 맨 위에 있는 요소의 값을 가져옴(제거X) + +# 스택으로 작업하기 + +스택에서는 TOP이라는 포인터를 사용하여 스택의 맨 위에 있는 요소를 추적한다. 스택을 초기화할 때, TOP의 값을 -1로 설정하여 TOP == -1인 경우 스택이 비어 있는지 확인할 수 있다. 요소를 push할 때마다, TOP의 값을 증가시키고, TOP이 가리키는 위치에 새로운 요소를 넣는다. 요소를 pop할 때, TOP이 가리키는 값을 반환하고, TOP의 값을 감소시킨다. push하기 전에 스택이 가득 차 있는지 확인하고, pop하기 전에 스택이 이미 비어 있는지 확인한다. + +# 소스 + +1) [Stack Data Structure - GeeksForGeeks](https://www.geeksforgeeks.org/stack-data-structure/) +2) [DS-Stack JavaPoint](https://www.javatpoint.com/data-structure-stack) +3) [Stack Data Structure](https://www.programiz.com/dsa/stack) + +# 영상 URL + +- [Stack Data Structure](https://youtu.be/F1F2imiOJfk) From d01394019bacefb5bb6da4e37098813c5fbb597e Mon Sep 17 00:00:00 2001 From: David Leal Date: Fri, 19 May 2023 18:54:20 -0600 Subject: [PATCH 17/40] docs: improve contributing (#211) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * docs: improve contributing * Update CONTRIBUTING.md --------- Co-authored-by: Lars Müller <34514239+appgurueu@users.noreply.github.com> --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 91f50958..ed8e4534 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -34,7 +34,7 @@ Subsequent sub-headings *may* be: 4. Analysis (proof of correctness, best/worst/average cases, time & space complexity) 5. Walkthrough(s) of how the algorithm processes example input(s) 6. Application(s) of the algorithm -7. Further resources such as reference implementations, videos or other explanations +7. Further resources such as reference implementations, videos or other explanations. *If possible, link to The Algorithms' website as well (example: ).* ### Capitalization From c811d73336d8fd1813689fbd8685995a3a7d09ea Mon Sep 17 00:00:00 2001 From: BSzmolke <40246238+BSzmolke@users.noreply.github.com> Date: Fri, 26 May 2023 04:02:03 +0200 Subject: [PATCH 18/40] feat: add cycle sort (#212) * Feat: add cycle sort * remove redundant links * chore: apply suggestions from code review --------- Co-authored-by: David Leal --- en/Sorting Algorithms/Cycle Sort.md | 69 +++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 en/Sorting Algorithms/Cycle Sort.md diff --git a/en/Sorting Algorithms/Cycle Sort.md b/en/Sorting Algorithms/Cycle Sort.md new file mode 100644 index 00000000..840aab13 --- /dev/null +++ b/en/Sorting Algorithms/Cycle Sort.md @@ -0,0 +1,69 @@ +# Cycle Sort + +#### Problem Statement + +Given an unsorted array of n elements, write a function to sort the array + +#### Approach + +- If the element is already at its correct position do nothing +- Otherwise, find the correct position of a by counting the total number of elements that are less than current element +- Insert current element into its correct position +- Set replaced element as new current element and find its correct position +- Continue process until array is sorted + +#### Time Complexity + +`O(n^2)` Worst case performance + +`O(n^2)` Best-case performance + +`O(n^2)` Average performance + +#### Space Complexity + +`O(n)` Worst case + +#### Application of algorithm + +- Cycle sort algorithm is useful for situations where memory write or element swap operations are costly. + +#### Example + +A single cycle of sorting array | b | d | e | a | c | + +``` +1. Select element for which the cycle is run, i.e. "b". + +|b|d|e|a|c| + +b - current element + +2. Find correct location for current element and update current element. + +|b|b|e|a|c| + +d - current element + +3. One more time, find correct location for current element and update current element. + +|b|b|e|d|c| + +a - current element + +4. Current element is inserted into position of initial element "b" which ends the cycle. + +|a|b|e|d|c| + +a - current element + +5. New cycle should be started for next element. +``` + +#### Video Explanation + +[A video explaining the Cycle Sort Algorithm](https://www.youtube.com/watch?v=gZNOM_yMdSQ) + +#### The Algorithms Page + +[Cycle Sort](https://the-algorithms.com/algorithm/cycle-sort) From afd9db918193f965c9cfa35d7794d839b95e6d76 Mon Sep 17 00:00:00 2001 From: PUNGY <71264780+KANGPUNGYUN@users.noreply.github.com> Date: Tue, 4 Jul 2023 06:56:16 +0900 Subject: [PATCH 19/40] Add Korean translation (#213) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add Korean translation * Update 진약수의 합.md Change the implementation link from individual sites to The Algorithms. --- ...5\354\210\230\354\235\230 \355\225\251.md" | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 "ko/\352\270\260\354\264\210 \354\210\230\355\225\231/\354\247\204\354\225\275\354\210\230\354\235\230 \355\225\251.md" diff --git "a/ko/\352\270\260\354\264\210 \354\210\230\355\225\231/\354\247\204\354\225\275\354\210\230\354\235\230 \355\225\251.md" "b/ko/\352\270\260\354\264\210 \354\210\230\355\225\231/\354\247\204\354\225\275\354\210\230\354\235\230 \355\225\251.md" new file mode 100644 index 00000000..8014d44b --- /dev/null +++ "b/ko/\352\270\260\354\264\210 \354\210\230\355\225\231/\354\247\204\354\225\275\354\210\230\354\235\230 \355\225\251.md" @@ -0,0 +1,48 @@ +# 진약수의 합 + +$s(n)$은 양의 정수 $n$에 대한 모든 진약수의 합을 구하는 표현식이다. 여기서, 진약수는 자기 자신인 $n$을 제외한 $n$의 모든 약수를 의미한다. + +$$ s(n) = \sum\_{d | n, d \neq n} {d} $$ + +예를 들면, $15$ 에 대한 진약수의 합은 $(1 + 3 + 5) = 9$ 이다. + +진약수의 합은 정수론에서 매우 유용한 성질이며, 다음을 정의하는 데 사용할 수 있다: + +- 소수(Prime Numbers) +- 부족수(Deficient Numbers) +- 과잉수(Abundant Numbers) +- 완전수(Perfect Numbers) +- 친화수(Amicable Numbers) +- 불가촉수(Untouchable Numbers) +- 진약수의 합 수열(Aliquot Sequence of a number) +- 준완전수&근완전수(Quasiperfect & Almost Perfect Numbers) +- 사교수(Sociable Numbers) + +## 진약수의 합에 관한 사실들 + +- 1은 진약수의 합이 0인 유일한 수 +- 완전수는 진약수들의 합이 자기 자신이 되는 수 +- $pq$처럼 곱셈 형태인 [_준소수_](https://en.wikipedia.org/wiki/Semiprime)에 대한 진약수의 합은 $p + q + 1$ 이다 (p와 q는 1이 아닌 서로 다른 숫자인 상황을 가정) +- 진약수의 합은 세계적으로 유명한 수학자 [Paul Erdős](https://en.wikipedia.org/wiki/Paul_Erd%C5%91s)가 가장 좋아하는 조사 주제 중 하나 + +## 진약수의 합을 찾는 접근방식 + +### 1단계: _진약수 구하기_ + +$1$부터 $[\frac{n} 2]$까지의 모든 수를 반복하여, $n$을 나눌 수 있는지 확인하고, 분할할 수 있다면 진약수에 추가한다. + +$[\frac{n} 2]$와 같은 상계를 가지는 이유는 $n$이 짝수인 경우, 가능한 진약수 중 가장 큰 진약수는 $\frac{n} 2 $이며, $n$이 홀수인 경우, 가능한 진약수 중 가장 큰 진약수가 $[\frac{n} 2]$보다 작다. 따라서, 상계를 만들어 계산하는 방법이 $1$부터 $n$까지 모든 수를 반복하는 방법보다 불필요한 계산을 줄일 수 있다. + +### 2단계: _진약수 더하기_ + +이렇게 구한 합은 진약수의 합이다 + +## 출처 + +- [위키피디아 "진약수의 합" 항목](https://ko.wikipedia.org/wiki/%EC%A7%84%EC%95%BD%EC%88%98%EC%9D%98_%ED%95%A9) +- [Wikipedia "Aliquot sum" 항목](https://en.wikipedia.org/wiki/Aliquot_sum) +- [GeeksForGeeks](https://www.geeksforgeeks.org/aliquot-sum/) + +## The Algorithms 페이지 + +- [진약수의 합](https://the-algorithms.com/ko/algorithm/aliquot-sum) From 1dc534eddb4afd3f7f73c48eca7ddd1be053eec9 Mon Sep 17 00:00:00 2001 From: PUNGY <71264780+KANGPUNGYUN@users.noreply.github.com> Date: Wed, 19 Jul 2023 11:07:01 +0900 Subject: [PATCH 20/40] Added Korean translation (#214) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add Korean translation * Update 진약수의 합.md Change the implementation link from individual sites to The Algorithms. * Added Korean translation * Add missing value in magic square * Update 마방진.md edited link to the Algorithm link * Update 유클리드 알고리즘.md added Algorithm link for implementation. --- en/Basic Math/magic_square.md | 24 ++--- .../\353\247\210\353\260\251\354\247\204.md" | 72 +++++++++++++++ ...14\352\263\240\353\246\254\354\246\230.md" | 92 +++++++++++++++++++ 3 files changed, 177 insertions(+), 11 deletions(-) create mode 100644 "ko/\352\270\260\354\264\210 \354\210\230\355\225\231/\353\247\210\353\260\251\354\247\204.md" create mode 100644 "ko/\352\270\260\354\264\210 \354\210\230\355\225\231/\354\234\240\355\201\264\353\246\254\353\223\234 \354\225\214\352\263\240\353\246\254\354\246\230.md" diff --git a/en/Basic Math/magic_square.md b/en/Basic Math/magic_square.md index 73e71d81..4edce04a 100644 --- a/en/Basic Math/magic_square.md +++ b/en/Basic Math/magic_square.md @@ -15,7 +15,7 @@ A magic square puzzle of the `n` order is an organization of `n²` numbers, usua As mentioned above, the formula of the magic square sum is n(n² + 1)/2.\ For a magic square of order 3, we need to substitute n = 3 to know the magic sum so that we can easily form the magic square 3×3. -When `n = 3`, the sum = 3(3*3 + 1) = 3(9 + 1)/2 = (3 × 10)/2 = 15\ +When `n = 3`, the sum = 3(3\*3 + 1)/2 = 3(9 + 1)/2 = (3 × 10)/2 = 15\ Now, we have to place the numbers in the respective places so that the sum of numbers in each row, column and diagonal is equal to 15. ## Magic Square Trick for order 3 @@ -35,7 +35,6 @@ The cell above x is taken as y – 1 as given below: ![magic-square-1](https://user-images.githubusercontent.com/106215707/192823521-c992c61b-055a-4af8-b697-71fb0ed22566.png) ![magic-square-2](https://user-images.githubusercontent.com/106215707/192823583-8a375043-21d7-4a74-b2d8-119a6ca727eb.png) - Let us make the complementary magic square of the above square. `(n² + 1) = 32 + 1 = 9 + 1 = 10` @@ -43,28 +42,31 @@ Let us make the complementary magic square of the above square. Now, subtract each number from (n² + 1), i.e. from 10. - First row numbers: - - 10 – 4 = 6 - - 10 – 3 = 7 + + - 10 – 4 = 6 + - 10 – 3 = 7 - 10 – 8 = 2 - Second row numbers: - - 10 – 9 = 1 , - - 10 – 5 = 5 , + + - 10 – 9 = 1 , + - 10 – 5 = 5 , - 10 – 1 = 9 - Third row numbers: - - 10 – 2 = 8 , - - 10 – 7 = 3 , + - 10 – 2 = 8 , + - 10 – 7 = 3 , - 10 – 6 = 4 - ![magic-square-3](https://user-images.githubusercontent.com/106215707/192823650-21655cfe-0b8f-4bcb-b7d0-76280770c615.png) +# REFERENCE - -# REFERENCE ## website:- + - [Byjus](https://byjus.com/maths/magic-square/) - [geeksforgeeks](https://www.geeksforgeeks.org/magic-square/) + ## Youtube:- + - [video](https://www.bing.com/videos/search?q=magic+square&&view=detail&mid=26BE595B719B8B532E5126BE595B719B8B532E51&&FORM=VRDGAR&ru=%2Fvideos%2Fsearch%3Fq%3Dmagic%2Bsquare%26FORM%3DHDRSC3) diff --git "a/ko/\352\270\260\354\264\210 \354\210\230\355\225\231/\353\247\210\353\260\251\354\247\204.md" "b/ko/\352\270\260\354\264\210 \354\210\230\355\225\231/\353\247\210\353\260\251\354\247\204.md" new file mode 100644 index 00000000..5639c404 --- /dev/null +++ "b/ko/\352\270\260\354\264\210 \354\210\230\355\225\231/\353\247\210\353\260\251\354\247\204.md" @@ -0,0 +1,72 @@ +# 마방진이란? + +마방진이란 모든 행, 열, 주대각선과 일반적으로 다른 대각선의 일부 혹은 모든 대각선 방향으로 수를 모두 더하면 그 합이 같도록 배열된 고유한 정수를 포함하는 정사각형으로 정의한다. + +# 마방진 공식 + +`n`차 마방진은 일반적으로 `n²`개의 고유한 정수 숫자들을 정사각형 안에 정리한 것이다. 모든 행, 열, 대각선의 `n` 개의 숫자를 합하면 같은 상수가 된다. 마방진은 1부터 `n²`까지의 정수를 가진다. 모든 행, 열 및 대각선의 고정 합을 마법 상수 또는 마법합이라고 한다. 이를 M이라는 문자로 표시한다. 전형적인 마방진의 마법 상수는 전적으로 `n`의 값에 따라 결정된다. 따라서 마법합의 값은 다음 공식을 사용하여 계산한다: + +- M = `n(n² + 1)/2` + +- 이는 다른 차수의 마방진을 만드는 데 사용되는 마방진 공식이다. (`n²` + 1)에서 각 위치의 숫자를 빼면, 또 다른 마방진을 만들 수 있는데, 이를 서로 보완적인 마방진(complementary magic square)이라고 부른다. 그리고 1부터 시작하여 연속된 자연수들로 이루어진 마방진을 정규(normal) 마방진이라고 알려져 있다. + +# 마방진을 푸는 방법 + +위에서 언급한 바와 같이, 마법합의 공식은 n(n² + 1)/2이다.\ +3차 마방진에 경우, n = 3 을 대입하여 마법합의 값을 구한다면 3×3 마방진을 쉽게 형성할 수 있다. + +`n = 3`일 경우, 마법합 = 3(3\*3 + 1)/2 = 3(9 + 1)/2 = (3 × 10)/2 = 15이다.\ +이제, 우리는 각 행, 열, 대각선 방향으로 더한 숫자들의 합이 15와 동일하도록 각각의 위치에 숫자를 배치해야 한다. + +## 3차 마방진 만들기 요령 + +`x`를 마방진의 차수라고 하자. + +이 경우, `x = 3`이다. + +`x`와 `y`의 곱이 마법합의 값인 15가 되는 또 다른 숫자 `y`를 생각해 보자. + +그렇다면, `y = 5 {xy = (3)(5) = 15}` + +y의 값은 항상 정사각형 정중앙에 있어야 하고, x의 값은 y의 값 왼쪽 셀에 있어야 한다.\ +x 위의 셀은 아래의 이미지처럼 y – 1를 가진다: + +![magic-square-formula](https://user-images.githubusercontent.com/106215707/192823452-3eea7074-c8f0-4b30-9e83-ef7fb6641a01.png) +![magic-square-1](https://user-images.githubusercontent.com/106215707/192823521-c992c61b-055a-4af8-b697-71fb0ed22566.png) +![magic-square-2](https://user-images.githubusercontent.com/106215707/192823583-8a375043-21d7-4a74-b2d8-119a6ca727eb.png) + +위 마방진의 서로 보완적인 마방진(complementary magic square)을 만들자. + +`(n² + 1) = 32 + 1 = 9 + 1 = 10` + +이제, (n² + 1)의 값인 10에서 각 숫자를 빼라. + +- 첫 번째 행의 숫자들: + + - 10 – 4 = 6 + - 10 – 3 = 7 + - 10 – 8 = 2 + +- 두 번째 행의 숫자들: + + - 10 – 9 = 1 , + - 10 – 5 = 5 , + - 10 – 1 = 9 + +- 세 번째 행의 숫자들: + - 10 – 2 = 8 , + - 10 – 7 = 3 , + - 10 – 6 = 4 + +![magic-square-3](https://user-images.githubusercontent.com/106215707/192823650-21655cfe-0b8f-4bcb-b7d0-76280770c615.png) + +# 참조 + +## 웹사이트 + +- [Byjus](https://byjus.com/maths/magic-square/) +- [geeksforgeeks](https://www.geeksforgeeks.org/magic-square/) + +## The Algorithms 페이지 + +- [마방진](https://the-algorithms.com/ko/algorithm/magic-square) diff --git "a/ko/\352\270\260\354\264\210 \354\210\230\355\225\231/\354\234\240\355\201\264\353\246\254\353\223\234 \354\225\214\352\263\240\353\246\254\354\246\230.md" "b/ko/\352\270\260\354\264\210 \354\210\230\355\225\231/\354\234\240\355\201\264\353\246\254\353\223\234 \354\225\214\352\263\240\353\246\254\354\246\230.md" new file mode 100644 index 00000000..d0c7fb0d --- /dev/null +++ "b/ko/\352\270\260\354\264\210 \354\210\230\355\225\231/\354\234\240\355\201\264\353\246\254\353\223\234 \354\225\214\352\263\240\353\246\254\354\246\230.md" @@ -0,0 +1,92 @@ +# 유클리드 알고리즘 + +## 문제 + +양의 정수 $a$와 $b$의 최대공약수 $g = gcd(a, b)$를 구하시오. 여기서 $g$는 나머지 없이 $a$와 $b$ 모두 나누는 가장 큰 수로 정의한다. + +## 발상 + +유클리드 알고리즘은 큰 수에서 작은 수를 빼면 두 수의 최대공약수가 변하지 않는다는 단순한 관찰을 기반한다: + +$a > b$인 상황에서 $g$는 $a$와 $b$의 최대공약수라고 하자. +그렇다면 $g$는 $a$와 $b$를 나눌 수 있다. 따라서 $g$는 $a - b$도 나눌 수 있다. (분배법칙) + +$g'$를 $b$와 $a - b$의 최대공약수라 하자. + +$g' = g$ 귀류법: + +$g' < g$ 또는 $g' > g$이라고 가정하자. + +$g' < g$일 때, $g'$는 _최대_ 공약수가 될 수 없다. +$g$도 $a - b$와 $b$의 공약수이기 때문이다. + +$g' > g$일 때, $g'$는 $b$와 $a - b$의 약수이다 - +즉, $g'n = b$와 $g'm = a - b$로 표현할 수 있는 정수 $n, m$이 존재한다. +따라서 $g'm = a - g'n \iff g'm + g'n = a \iff g'(m + n) = a$이다. +이는 $g'$도 $a$의 약수이며, $g$가 $a$와 $b$의 최대공약수라는 초기 가정과 $g' > g$는 모순이다. + +## 구현 + +실제 실행에서 속도를 높이기 위해 반복해서 뺄셈하는 대신 나머지 연산이 사용된다: +$b$는 $a >= b$만큼 $a$에서 여러 번 반복해서 뺄 수 있다. +이러한 뺄셈 후에는 $b$로 나눌 때 $a$의 나머지만 남게 된다. + +간단한 Lua 구현은 다음과 같다: + +```lua +function gcd(a, b) + while b ~= 0 do + a, b = b, a % b + end + return a +end +``` + +`%`가 나머지 연산자임을 유의하자; +각 단계에서 새로운 `a`에 `b`를 할당하고, +새로운 `b`에는 `a`를 `b`로 나눈 나머지 연산한 값을 할당한다. + +## 분석 + +### 공간 복잡도 + +공간 복잡도는 약간 일정하다: +(일정한 크기로 가정된) $a$와 $b$라는 두 개의 숫자만 저장한다. + +### 시간 복잡도 + +while문의 각 반복은 일정한 시간에 실행되며 최소한 $b$를 절반으로 줄인다. 따라서 $O(log_2(n))$는 런타임의 상한값이다. + +## 연습 + +$a = 42$와 $b = 12$의 최대공약수를 구하라: + +1. $42 \mod 12 = 6$ +2. $12 \mod 6 = 0$ + +결과는 $gcd(42, 12) = 6$. + +유클리드 알고리즘을 사용하여 $a = 633$와 $b = 142$의 최대공약수를 구하라: + +1. $633 \mod 142 = 65$ +2. $142 \mod 65 = 12$ +3. $65 \mod 12 = 5$ +4. $12 \mod 5 = 2$ +5. $5 \mod 2 = 1$ +6. $2 \mod 1 = 0$ + +결과는 $gcd(633, 142) = 1$: $a$와 $b$는 서로소이다. + +## 활용 + +- 분수 단축하기 +- 최소공배수 구하기 +- 두 수가 서로소인지 효율적으로 확인하기 (예: RSA 암호화 시스템에 필요) + +## 참고자료 + +- [위키피디아 "유클리드 호제법" 항목](https://ko.wikipedia.org/wiki/%EC%9C%A0%ED%81%B4%EB%A6%AC%EB%93%9C_%ED%98%B8%EC%A0%9C%EB%B2%95) + +## The Algorithms 페이지 + +- [유클리드 알고리즘](https://the-algorithms.com/ko/algorithm/euclidean-gcd) From 03e42f64031214ce57ce5daabc470f70bc30cbde Mon Sep 17 00:00:00 2001 From: Chetan Nada <83969719+chetannada@users.noreply.github.com> Date: Sat, 23 Sep 2023 04:48:51 +0530 Subject: [PATCH 21/40] Update: Implementations Links added in Aliquot_Sum.md (#216) * Update: Implementations Links in Aliquot_Sum.md Added Implementations Links in Aliquot_Sum.md * Update: Added Single Implementation Link in Aliquot_Sum.md Added Single Implementation Link of `The Algorithms` website in Aliquot_Sum.md * Update Aliquot_Sum.md --- en/Basic Math/Aliquot_Sum.md | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/en/Basic Math/Aliquot_Sum.md b/en/Basic Math/Aliquot_Sum.md index 88e8c998..2f282440 100644 --- a/en/Basic Math/Aliquot_Sum.md +++ b/en/Basic Math/Aliquot_Sum.md @@ -34,12 +34,8 @@ The reason we take the upper bound as $[\frac{n} 2]$ is that, the largest possib The sum which we obtain is the aliquot sum of the number ## Implementations -- [C#](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Numeric/AliquotSumCalculator.cs) -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/maths/AliquotSum.java) -- [JavaScript](https://github.com/TheAlgorithms/JavaScript/blob/master/Maths/AliquotSum.js) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/maths/aliquot_sum.py) -- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/maths/aliquot_sum.rb) +- [TheAlgorithms](https://the-algorithms.com/algorithm/aliquot-sum) ## Sources - [Wikipedia](https://en.wikipedia.org/wiki/Aliquot_sum) -- [GeeksForGeeks](https://www.geeksforgeeks.org/aliquot-sum/) \ No newline at end of file +- [GeeksForGeeks](https://www.geeksforgeeks.org/aliquot-sum/) From 38a3b2f87e908e2724346be11df3ed825a302c55 Mon Sep 17 00:00:00 2001 From: hollowcrust <72879387+hollowcrust@users.noreply.github.com> Date: Sat, 11 Nov 2023 18:22:01 +0800 Subject: [PATCH 22/40] fix: Rewrite description to align with code and video (#220) --- ...tion Algorithm to Find Duplicate Number.md | 65 ++++++++++++++---- en/Search Algorithms/images/graph_1.png | Bin 0 -> 15836 bytes en/Search Algorithms/images/graph_2.png | Bin 0 -> 27717 bytes 3 files changed, 52 insertions(+), 13 deletions(-) create mode 100644 en/Search Algorithms/images/graph_1.png create mode 100644 en/Search Algorithms/images/graph_2.png diff --git a/en/Search Algorithms/Floyd Cycle Detection Algorithm to Find Duplicate Number.md b/en/Search Algorithms/Floyd Cycle Detection Algorithm to Find Duplicate Number.md index 320541aa..b23d0a56 100644 --- a/en/Search Algorithms/Floyd Cycle Detection Algorithm to Find Duplicate Number.md +++ b/en/Search Algorithms/Floyd Cycle Detection Algorithm to Find Duplicate Number.md @@ -1,38 +1,77 @@ -# Floyd Cycle Detection Algorithm to find duplicate number in an array +# Floyd Cycle Detection Algorithm to find duplicate numbers in an array ## Problem Statement Given an array of integers containing `n + 1` integers, where each integer is in the range `[1, n]` inclusive. If there is only one duplicate number in the input array, this algorithm returns the duplicate number without modifying the original array, otherwise, it returns -1. ## Approach +- We can imagine the array `arr` as a directed graph where each element is a node. `arr[i]` is the index of the node to which the i-th node points. +- For example, given the `arr = [1, 3, 4, 2, 3]`, we can represent `arr` as the following

+![image](images/graph_1.png) -- Use the function `f(x) = arr[x]` to construct the sequence: -`arr[0]`, `arr[arr[0]]`, `arr[arr[arr[0]]]`, `arr[arr[arr[arr[0]]]]`, etc.... -- Each new element in the sequence is an element in `arr[]` at the index of the previous element. -- Starting from `x = arr[0]`, it will produce a linked list with a cycle. -- The cycle appears because `arr[]` contains duplicate elements(at least one). The duplicate value is an entrance to the cycle. +- Since there are duplicates in `arr`, a cycle exists in the directed graph as there is a path from node 3 to itself, `3 -> 2 -> 4 -> 3`. +- The problem now becomes finding the entrance node to the cycle (3 in this case). +- We can use the Floyd Cycle Detection Algorithm (also known as the "Hare and Tortoise algorithm") to detect the entrance of the cycle. +- The idea of the algorithm is to maintain two pointers, `hare` and `tortoise` that iterate the array at different "speeds" (just like the fable). The details are as follows: +### The procedure +- Using two pointers `hare` and `tortoise`. +- Initiate `hare = tortoise = arr[0]`. +- For every next step until `hare == tortoise` again, assign `hare = arr[arr[hare]]` and `tortoise = arr[tortoise]` (`hare` "jumps" 2 steps while `tortoise` "jumps" one step). +- At this point, `hare == tortoise`, reset `tortoise = arr[0]` while keeping the value of `hare` in the above procedure. +- For every next step until `hare == tortoise` again, assign `hare = arr[hare]` and `tortoise = arr[tortoise]` (this time `hare` only "jumps" one step). +- When `tortoise == hare`, the entrance of the cycle is found, hence `hare` and `tortoise` represent the value of the duplicated element. +- Return `tortoise` (also possible to return `hare`) + ## Time Complexity -O(n) +`O(n)` ## Space Complexity -O(1) +`O(1)`, since we only use two extra variables as pointers. -## Example +## Example with step-by-step explanation +![image](images/graph_2.png) ``` -arr = [3, 4, 8, 5, 9, 1, 2, 6, 7, 4] +arr = [3, 4, 8, 5, 9, 1, 2, 6, 7, 4] -return value = 4 +hare = tortoise = arr[0] = 3 + +1st step: + - hare = arr[arr[3]] = arr[5] = 1 + - tortoise = arr[3] = 5 +2nd step: + - hare = arr[arr[1]] = arr[4] = 9 + - tortoise = arr[5] = 1 +3rd step: + - hare = arr[arr[9]] = arr[4] = 9 + - tortoise = arr[1] = 4 +4th step: + - hare = arr[arr[9]] = 9 + - tortoise = arr[4] = 9 + +tortoise = arr[0] = 3 + +1st step: + - hare = arr[9] = 4 + - tortoise = arr[3] = 5 +2nd step: + - hare = arr[4] = 9 + - tortoise = arr[5] = 1 +3rd step: + - hare = arr[9] = 4 + - tortoise = arr[1] = 4 + +return tortoise = 4 ``` ## Code Implementation Links - [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/search/floyd_cycle_detection_algo.cpp) - [C](https://github.com/TheAlgorithms/C/blob/master/searching/floyd_cycle_detection_algorithm.c) - #### Video Explanation -[YouTube video explaining the Floyd Cycle Detection algorithm](https://www.youtube.com/watch?v=B6smdk7pZ14) +- [YouTube video explaining the Floyd Cycle Detection algorithm](https://www.youtube.com/watch?v=B6smdk7pZ14) +- [Another Youtube video](https://www.youtube.com/watch?v=PvrxZaH_eZ4&t=1s) diff --git a/en/Search Algorithms/images/graph_1.png b/en/Search Algorithms/images/graph_1.png new file mode 100644 index 0000000000000000000000000000000000000000..2a45b595c720f50af62178aefe7bee03a2055552 GIT binary patch literal 15836 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 X%8D1xmIyxAMp2Yim8p_?6#Rbxw_z7L literal 0 HcmV?d00001 diff --git a/en/Search Algorithms/images/graph_2.png b/en/Search Algorithms/images/graph_2.png new file mode 100644 index 0000000000000000000000000000000000000000..d51e9516c8f8678310415bd395367a49bf7c7842 GIT binary patch literal 27717 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 c= Date: Sun, 26 Nov 2023 17:12:49 +0530 Subject: [PATCH 23/40] Updated Code Implementation Links in Coin Change.md (#227) --- en/Dynamic Programming/Coin Change.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/en/Dynamic Programming/Coin Change.md b/en/Dynamic Programming/Coin Change.md index 6801cace..1ea91c86 100644 --- a/en/Dynamic Programming/Coin Change.md +++ b/en/Dynamic Programming/Coin Change.md @@ -49,7 +49,17 @@ Let's say we have 3 coin types `[1,2,3]` and we want to change for `7` cents. So So the final answer is **8**. 8 ways to make change of 7 cents using all coin types. `{{1,1,1,1,1,1,1}, {1,1,1,1,1,2}, {1,1,1,2,2}, {1,2,2,2}, {1,1,1,1,3}, {1,3,3}, {2,2,3}, {1,1,2,3}}` #### Code Implementation Link -[Python](https://github.com/TheAlgorithms/Python/blob/master/dynamic_programming/coin_change.py) +- [JavaScript](https://github.com/TheAlgorithms/JavaScript/blob/master/Dynamic-Programming/CoinChange.js) +- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/dynamic_programming/coin_change.cpp) +- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/greedyalgorithms/CoinChange.java) +- [Go](https://github.com/TheAlgorithms/Go/blob/master/dynamic/coinchange.go) +- [Rust](https://github.com/TheAlgorithms/Rust/blob/master/src/dynamic_programming/coin_change.rs) +- [Dart](https://github.com/TheAlgorithms/Dart/blob/master/dynamic_programming/coin_change.dart) +- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/dynamic_programming/coin_change.rb) +- [Scala](https://github.com/TheAlgorithms/Scala/blob/master/src/main/scala/DynamicProgramming/CoinChange.scala) +- [Julia](https://github.com/TheAlgorithms/Julia/blob/main/src/dynamic_programming/coin_change.jl) +- [Lua](https://github.com/TheAlgorithms/Lua/blob/main/src/misc/coin_change.lua) +- [C#](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Problems/DynamicProgramming/CoinChange/DynamicCoinChangeSolver.cs) #### Video Explanation [Total Unique Ways To Make Change by Back To Back SWE](https://www.youtube.com/watch?v=DJ4a7cmjZY0) From e866193840fc0b2054041afd27a45fac2abeeb56 Mon Sep 17 00:00:00 2001 From: The Defective Detective <71999854+SpiderMath@users.noreply.github.com> Date: Thu, 30 Nov 2023 15:07:05 +0530 Subject: [PATCH 24/40] Update implementation links for Radix Sort (#226) --- en/Sorting Algorithms/Radix Sort.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/en/Sorting Algorithms/Radix Sort.md b/en/Sorting Algorithms/Radix Sort.md index d7490790..c8605f19 100644 --- a/en/Sorting Algorithms/Radix Sort.md +++ b/en/Sorting Algorithms/Radix Sort.md @@ -51,6 +51,7 @@ takes extra space to sort numbers. - [Assembly](https://github.com/TheAlgorithms/AArch64_Assembly/blob/main/sorters/radix_sort.s) - [C](https://github.com/TheAlgorithms/C/blob/master/sorting/radix_sort.c) - [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/sorting/radix_sort.cpp) +- [C#](https://github.com/TheAlgorithms/C-Sharp/tree/master/Algorithms/Sorters/Integer/RadixSorter.cs) - [Dart](https://github.com/TheAlgorithms/Dart/blob/master/sort/radix_sort.dart) - [Go](https://github.com/TheAlgorithms/Go/blob/master/sort/radixsort.go) - [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/RadixSort.java) @@ -61,6 +62,7 @@ takes extra space to sort numbers. - [R](https://github.com/TheAlgorithms/R/blob/master/sorting_algorithms/radix_sort.r) - [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/sorting/radix_sort.rb) - [Rust](https://github.com/TheAlgorithms/Rust/blob/master/src/sorting/radix_sort.rs) +- [Zig](https://github.com/TheAlgorithms/Zig/blob/main/sort/radixSort.zig) #### Video Explanation From 5b865cfc6656809d50c2065f7dfa7f48f6098216 Mon Sep 17 00:00:00 2001 From: The Defective Detective <71999854+SpiderMath@users.noreply.github.com> Date: Thu, 30 Nov 2023 15:08:24 +0530 Subject: [PATCH 25/40] Update implementation links for Vigenere Cipher (#225) --- en/Ciphers/vigenere_cipher.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/en/Ciphers/vigenere_cipher.md b/en/Ciphers/vigenere_cipher.md index 04360074..88768aaa 100644 --- a/en/Ciphers/vigenere_cipher.md +++ b/en/Ciphers/vigenere_cipher.md @@ -65,5 +65,9 @@ Decryption is similar to encryption (except for the subtraction operation). ## Implementations - [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/ciphers/vigenere_cipher.cpp) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/ciphers/vigenere_cipher.py) +- [C#](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Encoders/VigenereEncoder.cs) +- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/ciphers/Vigenere.java) - [JavaScript](https://github.com/TheAlgorithms/JavaScript/blob/master/Ciphers/VigenereCipher.js) +- [Julia](https://github.com/TheAlgorithms/Julia/blob/main/src/cipher/vigenere.jl) +- [Python](https://github.com/TheAlgorithms/Python/blob/master/ciphers/vigenere_cipher.py) +- [Rust](https://github.com/TheAlgorithms/Rust/blob/master/src/ciphers/vigenere.rs) From 04db59a7c224fa8cee02cdccaddf627e94e2c0e5 Mon Sep 17 00:00:00 2001 From: The Defective Detective <71999854+SpiderMath@users.noreply.github.com> Date: Thu, 30 Nov 2023 15:09:13 +0530 Subject: [PATCH 26/40] Update implementation links for Caesar Cipher (#224) --- en/Ciphers/caesar_cipher.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/en/Ciphers/caesar_cipher.md b/en/Ciphers/caesar_cipher.md index f002d77a..9b1ba40f 100644 --- a/en/Ciphers/caesar_cipher.md +++ b/en/Ciphers/caesar_cipher.md @@ -38,4 +38,8 @@ Let us say we are sending a secret message to a friend. ## Implementation +* [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/ciphers/caesar_cipher.cpp) +* [JavaScript](https://github.com/TheAlgorithms/JavaScript/blob/master/Ciphers/CaesarCipher.js) +* [PHP](https://github.com/TheAlgorithms/PHP/blob/master/Ciphers/CaesarCipher.php) * [Python](https://github.com/TheAlgorithms/Python/blob/master/ciphers/caesar_cipher.py) + From f0632d516bf8d4fcd60dd853600b85d7a67a5380 Mon Sep 17 00:00:00 2001 From: Surani Naranpanawa <126441309+Surani02@users.noreply.github.com> Date: Thu, 7 Dec 2023 18:26:49 +0530 Subject: [PATCH 27/40] Add Queue explanation (#223) --- en/Data Structures/Queues/queue.md | 35 ++++++++++++++++++++ en/Dynamic Programming/Kadane's Algorithm.md | 4 +++ 2 files changed, 39 insertions(+) create mode 100644 en/Data Structures/Queues/queue.md diff --git a/en/Data Structures/Queues/queue.md b/en/Data Structures/Queues/queue.md new file mode 100644 index 00000000..93d83066 --- /dev/null +++ b/en/Data Structures/Queues/queue.md @@ -0,0 +1,35 @@ +# Queue + +## Description + +A queue is a linear data structure that follows the First-In-First-Out (FIFO) principle. It is often compared to a real-world queue of people waiting in line. The element that is added first is the one that gets removed first. Queues are commonly used for various applications, such as task scheduling, managing requests, and more. + +## Queue Operations + +1) Enqueue (Push): This operation is used to add an item to the back or end of the queue. It's equivalent to "pushing" an item onto the queue. When you enqueue an item, it becomes the last item in the queue. + +2) Dequeue (Pop): Dequeue is the operation used to remove and return the front item from the queue. The item that has been in the queue the longest (the front item) is the one removed. After dequeuing an item, the next item in the queue becomes the new front. + +3) Peek (Front): This operation is used to view the front item in the queue without removing it. It provides a way to examine the item at the front of the queue without actually dequeuing it. + +4) isEmpty: This operation checks whether the queue is empty. If the queue contains no items, it returns true; otherwise, it returns false. + +## Source + +- [Queue Data Structure](https://www.geeksforgeeks.org/queue-data-structure/) + +## Video URL + +- [Queue in Data Structure](https://www.youtube.com/watch?v=zp6pBNbUB2U) +- [Implementation of Queue using Arrays](https://www.youtube.com/watch?v=YqrFeU90Coo) +- [Queue Implementation using Linked List in C](https://www.youtube.com/watch?v=RN1wzY_tnYU) + +## Implementation + +1) Queue Implementation Using Lists (Arrays) + +In this approach, you can use a list (or array) to represent a queue. You will maintain two pointers, one pointing to the front of the queue and another pointing to the back. The front pointer keeps track of the element to be dequeued, and the back pointer keeps track of where new elements should be enqueued. + +2) Queue Implementation Using a Linked List + +In this approach, you can use a linked list to implement a queue. You maintain two pointers, one pointing to the front (head) of the queue and another pointing to the back (tail). Enqueueing involves adding a new node at the tail, and dequeueing involves removing the node at the head. diff --git a/en/Dynamic Programming/Kadane's Algorithm.md b/en/Dynamic Programming/Kadane's Algorithm.md index 6e53f07f..1b82136d 100644 --- a/en/Dynamic Programming/Kadane's Algorithm.md +++ b/en/Dynamic Programming/Kadane's Algorithm.md @@ -111,3 +111,7 @@ largest_sum = max(5, 6) = 6 ### Code Implementation Links - [Python](https://github.com/TheAlgorithms/Python/blob/252df0a149502143a14e7283424d40b785dd451c/maths/kadanes.py) + +### Video Explanation Link + +- [Kadane's Algorithm to Maximum Sum Subarray Problem](https://www.youtube.com/watch?v=86CQq3pKSUw) From ddd1e4ebde121b31f7343767a345e38408488a73 Mon Sep 17 00:00:00 2001 From: David Leal Date: Tue, 16 Jan 2024 01:17:49 -0600 Subject: [PATCH 28/40] chore: update copyright notices to 2024 --- LICENSE.md => LICENSE.txt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) rename LICENSE.md => LICENSE.txt (94%) diff --git a/LICENSE.md b/LICENSE.txt similarity index 94% rename from LICENSE.md rename to LICENSE.txt index fba99dd0..9000c9ce 100644 --- a/LICENSE.md +++ b/LICENSE.txt @@ -1,6 +1,5 @@ The MIT License (MIT) - -Copyright © 2020-2021 The Algorithms +Copyright (C) 2020-2024 The Algorithms and contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: From 6886024c621b8167ecd75a10f5f8462d31f5650a Mon Sep 17 00:00:00 2001 From: David Leal Date: Thu, 8 Feb 2024 23:55:34 -0600 Subject: [PATCH 29/40] chore: add line breaks in the license file --- LICENSE.txt | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/LICENSE.txt b/LICENSE.txt index 9000c9ce..34466e2a 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,8 +1,21 @@ -The MIT License (MIT) -Copyright (C) 2020-2024 The Algorithms and contributors +The MIT License -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +Copyright (c) 2020-2024 The Algorithms and contributors -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: -THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. From 4d500fdd15ae969a1328e68a6eb662446e4a08c4 Mon Sep 17 00:00:00 2001 From: Xceptions Date: Wed, 28 Feb 2024 16:00:41 +0100 Subject: [PATCH 30/40] Add trie data structure explanation (#229) --- en/Data Structures/Tries/trie.md | 158 +++++++++++++++++++++++++++++++ 1 file changed, 158 insertions(+) create mode 100644 en/Data Structures/Tries/trie.md diff --git a/en/Data Structures/Tries/trie.md b/en/Data Structures/Tries/trie.md new file mode 100644 index 00000000..0be94fce --- /dev/null +++ b/en/Data Structures/Tries/trie.md @@ -0,0 +1,158 @@ +# Trie + +A trie (also called a prefix tree) is a tree data structure that shows order, linking parents to children. It is an efficient way of storing objects that have commonalities. A good example would be in storing phone numbers, or strings in general + +For the strings example, supposing we have a list of strings to store in our data store + +1. egg +2. eat +3. ear +4. end + +And one of the methods we are to support is a search operation for any of the words, we can approach it the basic way - select each word, and do a string comparison, matching letter to letter. The algorithm would be as follows: + + +``` +## searching for ear in data store + +data_store = ["egg", "eat", "ear", "end"] +to_find = "ear" + +## pick each word +## do a string match letter by letter +## when you find a mismatch, move to the next string +## continue this process +## if at the end of an iteration, index has been increased to +## the length of the word to find, we have found a match + +for word in data_store: + index = 0 + while index < len(word): + if to_find[index] != word[index]: + break + index += 1 + if index == len(to_find): + print("a match has been found") + +``` + +Without a doubt, this strategy will work, but the time complexity of doing this is *O(num of words x len of longest word)* which is quite expensive. +However, if we represent the storage of numbers in a tree such that each letter appears only once in a particular level in the tree, we can achieve a much better search time. Take, for example, the tree below + +``` + e + / | \ + a n g + / \ | | + r t d g + +``` + +You can see from the above representation, that all the words are in the tree, starting from the letter e, which is found at the beginning of all the words, then a, n, and g coming in the next level and so on... +The above representation is called a trie. + +# Standard Trie Operations + +1) insert(): inserts the string into the trie. +2) search(): searches for the string within the trie. + +# Building a Trie + +## Defining a node class for the elements of the trie + +To start building a trie, you first need to define a node with the revelant attributes needed for any trie. + +``` +class Node: + def __init__(self, is_word: bool=False): + self.is_word = is_word + self.children = {} +``` + +Here, you can see that the class `Node` has three instance attributes: +1. is_word: *bool* = to mark whether that node in the trie marks the completion of a word +2. children: *Dict* = to hold pointers to other children nodes + +Then the trie gets built by creating a node for each letter and adding it as a child to the node before it + +## Building the trie itself + +Start by initializing an empty node + +``` +class Trie: + def __init__(self): + self.node = Node() +``` + +For the insert operation, fetch the starting node, then for every letter in the word, add it to the children of the letter before it. The final node has its `is_word` attribute marked as **True** because we want to be aware of where the word ends + +``` +def insert(self, word: str) -> None: + node = self.node + for ltr in word: + if ltr not in node.children: + node.children[ltr] = Node() + node = node.children[ltr] + node.is_word=True +``` + +*In the code above, the `node` variable starts by holding a reference to the null node, while the `ltr` iterating variable starts by holding the first letter in `word`. This would ensure that `node` is one level ahead of `ltr`. As they are both moved forward in the iterations, `node` will always remain one level ahead of `ltr`* + +For the search operation, fetch the starting node, then for every letter in the word, check if it is present in the `children` attribute of the current node. As long as it is present, repeat for the next letter and next node. If during the search process, we find a letter that is not present, then the word does not exist in the trie. If we successfully get to the end of the iteration, then we have found what we are looking for. It is time to return a value + +Take a look at the code + +``` +def search(self, word: str) -> bool: + node = self.node + for ltr in word: + if ltr not in node.children: + return False + node = node.children[ltr] + return node.is_word +``` + +For the return value, there are two cases: +1. we are searching for a word -> return `node.is_word` because we want to be sure it is actually a word, and not a prefix +2. we are searching for a prefix -> return **True** because whether it is a word or not, it is prefix that exists in the trie + +Now here is the full code + +``` +class Node: + def __init__(self, is_word: bool=False): + self.is_word = is_word + self.children = {} + +class Trie: + + def __init__(self): + self.node = Node() + + + def insert(self, word: str) -> None: + node = self.node + for ltr in word: + if ltr not in node.children: + node.children[ltr] = Node() + node = node.children[ltr] + node.is_word=True + + + def search(self, word: str) -> bool: + node = self.node + for ltr in word: + if ltr not in node.children: + return False + node = node.children[ltr] + return node.is_word +``` + +# Helpful links + +1) [Trie Data Structure - GeeksForGeeks](https://www.geeksforgeeks.org/trie-insert-and-search/) + +# Video Playlist + +- [Trie Data Structure](https://www.youtube.com/watch?v=zIjfhVPRZCg) \ No newline at end of file From fe77013808619101935af2b60fc76eb2820800b9 Mon Sep 17 00:00:00 2001 From: Piotr Idzik <65706193+vil02@users.noreply.github.com> Date: Thu, 4 Apr 2024 17:49:33 +0200 Subject: [PATCH 31/40] chore: add `url_check.yml` (#231) * chore: add `url_check.yml` * docs: remove some broken links * chore: do not fail when broken links found --- .github/workflows/url_check.yml | 28 +++++++++++++++++++ en/Basic Math/Fibonacci_Numbers.md | 3 -- en/Basic Math/Geometric Pogression.md | 1 - .../Linked Lists/Singly Linked List.md | 1 - en/Sorting Algorithms/Merge Sort.md | 3 -- .../Ordenamiento de fusi\303\263n.md" | 3 -- .../B\303\272squeda lineal.md" | 1 - .../Lista singular vinculada.md | 1 - fr/tri/Tri_fusion.md | 3 -- ...7\225\327\240\327\220\327\246'\327\231.md" | 1 - ...61\353\271\204\354\210\230\354\227\264.md" | 1 - ...0 \353\246\254\354\212\244\355\212\270.md" | 1 - ...1\355\225\251 \354\240\225\353\240\254.md" | 3 -- .../\355\236\231 \354\240\225\353\240\254.md" | 1 - ...0\355\230\225 \355\203\220\354\203\211.md" | 1 - pt-br/Algoritmos de Busca/Busca Linear.md | 1 - .../Merge Sort.md" | 3 -- .../Linked Lists/Lista individual.md | 1 - 18 files changed, 28 insertions(+), 29 deletions(-) create mode 100644 .github/workflows/url_check.yml diff --git a/.github/workflows/url_check.yml b/.github/workflows/url_check.yml new file mode 100644 index 00000000..4e28798a --- /dev/null +++ b/.github/workflows/url_check.yml @@ -0,0 +1,28 @@ +--- +name: url_check + +'on': + workflow_dispatch: + push: + branches: + - master + pull_request: + schedule: + - cron: '43 5 * * TUE' + +jobs: + run_lychee: + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Check links + uses: lycheeverse/lychee-action@v1.9.3 + with: + args: > + --no-progress + * + fail: false +... diff --git a/en/Basic Math/Fibonacci_Numbers.md b/en/Basic Math/Fibonacci_Numbers.md index 01e8df48..bb61a3e0 100644 --- a/en/Basic Math/Fibonacci_Numbers.md +++ b/en/Basic Math/Fibonacci_Numbers.md @@ -57,17 +57,14 @@ F(8)=21 ## Implementation -- [C](https://github.com/TheAlgorithms/C/blob/master/misc/fibonacci.c) - [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/math/fibonacci.cpp) - [Elixir](https://github.com/TheAlgorithms/Elixir/blob/master/lib/dynamic_programming/fibonacci.ex) - [F#](https://github.com/TheAlgorithms/F-Sharp/blob/main/Algorithms/Math/Fibonacci.fs) - [Go](https://github.com/TheAlgorithms/Go/blob/master/dynamic/fibonacci.go) - [Haskell](https://github.com/TheAlgorithms/Haskell/blob/master/src/Maths/Fibonacci.hs) -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/maths/FibonacciNumber.java) - [JavaScript](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/Fibonacci.js) - [PHP](https://github.com/TheAlgorithms/PHP/blob/master/Maths/Fibonacci.php) - [Python](https://github.com/TheAlgorithms/Python/blob/master/maths/fibonacci.py) -- [R](https://github.com/TheAlgorithms/R/blob/master/Mathematics/Fibonacci.R) - [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/maths/fibonacci.rb) - [Rust](https://github.com/TheAlgorithms/Rust/blob/master/src/dynamic_programming/fibonacci.rs) - [Scala](https://github.com/TheAlgorithms/Scala/blob/master/src/main/scala/Mathematics/Fibonacci.scala) diff --git a/en/Basic Math/Geometric Pogression.md b/en/Basic Math/Geometric Pogression.md index 3943a575..73c1f6ca 100644 --- a/en/Basic Math/Geometric Pogression.md +++ b/en/Basic Math/Geometric Pogression.md @@ -51,4 +51,3 @@ nth term of a GP = `a*rn-1`. # YouTube - [Video URL for concept](https://youtu.be/gua96ju_FBk) -- [Video for understanding GP Dynamic Programming in C++](https://youtu.be/92ZldzuGUHs) diff --git a/en/Data Structures/Linked Lists/Singly Linked List.md b/en/Data Structures/Linked Lists/Singly Linked List.md index 27ccc46a..729eba0a 100644 --- a/en/Data Structures/Linked Lists/Singly Linked List.md +++ b/en/Data Structures/Linked Lists/Singly Linked List.md @@ -42,7 +42,6 @@ class LinkedList { - [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/datastructures/lists/SinglyLinkedList.java) - [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/data_structures/linked_list.cpp) - [Python](https://github.com/TheAlgorithms/Python/blob/master/data_structures/linked_list/singly_linked_list.py) -- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/data_structures/linked_lists/single_list.rb) ## Video Explanation diff --git a/en/Sorting Algorithms/Merge Sort.md b/en/Sorting Algorithms/Merge Sort.md index b2619591..08a3d541 100644 --- a/en/Sorting Algorithms/Merge Sort.md +++ b/en/Sorting Algorithms/Merge Sort.md @@ -62,8 +62,6 @@ At the next stack level [1, 2, 5, 9] and [3, 4, 6, 7] will be merged and we will #### Code Implementation Links - [Assembly](https://github.com/TheAlgorithms/AArch64_Assembly/blob/main/sorters/merge_sort.s) -- [C](https://github.com/TheAlgorithms/C/blob/master/sorting/merge_sort.c) -- [C#](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Sorters/Comparison/MergeSorter.cs) - [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/sorting/merge_sort.cpp) - [Dart](https://github.com/TheAlgorithms/Dart/blob/master/sort/merge_sort.dart) - [Elixir](https://github.com/TheAlgorithms/Elixir/blob/master/lib/sorting/merge_sort.ex) @@ -78,7 +76,6 @@ At the next stack level [1, 2, 5, 9] and [3, 4, 6, 7] will be merged and we will - [Lua](https://github.com/TheAlgorithms/Lua/blob/main/src/sorting/mergesort.lua) - [Matlab](https://github.com/TheAlgorithms/MATLAB-Octave/blob/master/algorithms/sorting/merge_sort.m) - [PHP](https://github.com/TheAlgorithms/PHP/blob/master/Sorting/MergeSort.php) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/merge_sort.py) - [R](https://github.com/TheAlgorithms/R/blob/master/sorting_algorithms/merge_sort.r) - [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/sorting/merge_sort.rb) - [Rust](https://github.com/TheAlgorithms/Rust/blob/master/src/sorting/merge_sort.rs) diff --git "a/es/Algoritmos de Ordenamiento/Ordenamiento de fusi\303\263n.md" "b/es/Algoritmos de Ordenamiento/Ordenamiento de fusi\303\263n.md" index ef2b24d8..f0122536 100644 --- "a/es/Algoritmos de Ordenamiento/Ordenamiento de fusi\303\263n.md" +++ "b/es/Algoritmos de Ordenamiento/Ordenamiento de fusi\303\263n.md" @@ -35,9 +35,6 @@ Ahora combine ambas mitades para obtener la matriz ordenada [0, 1, 2, 3, 5, 9] - [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/MergeSort.java) - [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/sorting/merge_sort.cpp) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/merge_sort.py) -- [C-Sharp](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Sorters/Comparison/MergeSorter.cs) -- [C](https://github.com/TheAlgorithms/C/blob/master/sorting/merge_sort.c) - [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/sorting/merge_sort.rb) #### Explicación de vídeo diff --git "a/es/Algoritmos de b\303\272squeda/B\303\272squeda lineal.md" "b/es/Algoritmos de b\303\272squeda/B\303\272squeda lineal.md" index 70808cf6..7d8f827d 100644 --- "a/es/Algoritmos de b\303\272squeda/B\303\272squeda lineal.md" +++ "b/es/Algoritmos de b\303\272squeda/B\303\272squeda lineal.md" @@ -36,7 +36,6 @@ La búsqueda lineal debe devolver -1 ya que 6 no está presente en la matriz #### Enlaces de implementación de código - [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/searches/LinearSearch.java) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/Search/Linear%20Search.cpp) - [Python](https://github.com/TheAlgorithms/Python/blob/master/searches/linear_search.py) - [JavaScript](https://github.com/TheAlgorithms/Javascript/blob/master/Search/LinearSearch.js) - [C-Sharp](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Search/LinearSearcher.cs) diff --git a/es/Estructuras de datos/Listas vinculadas/Lista singular vinculada.md b/es/Estructuras de datos/Listas vinculadas/Lista singular vinculada.md index 4ac01ed3..bbf71447 100644 --- a/es/Estructuras de datos/Listas vinculadas/Lista singular vinculada.md +++ b/es/Estructuras de datos/Listas vinculadas/Lista singular vinculada.md @@ -42,7 +42,6 @@ class LinkedList { - [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/datastructures/lists/SinglyLinkedList.java) - [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/Data%20Structure/Linked%20List.cpp) - [Python](https://github.com/TheAlgorithms/Python/blob/master/data_structures/linked_list/singly_linked_list.py) -- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/data_structures/linked_lists/single_list.rb) ## Explicación de vídeo diff --git a/fr/tri/Tri_fusion.md b/fr/tri/Tri_fusion.md index ccf185ea..359887be 100644 --- a/fr/tri/Tri_fusion.md +++ b/fr/tri/Tri_fusion.md @@ -49,11 +49,8 @@ Au niveau suivant de la pile, [1, 2, 5, 9] et [3, 4, 6, 7] seront fusionnés et ## Implémentation -- [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/merge_sort.py) - [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/MergeSort.java) -- [C](https://github.com/TheAlgorithms/C/blob/master/sorting/merge_sort.c) - [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/sorting/merge_sort.cpp) -- [C-Sharp](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Sorters/Comparison/MergeSorter.cs) - [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/sorting/merge_sort.rb) - [Go](https://github.com/TheAlgorithms/Go/blob/master/sort/mergesort.go) - [JavaScript](https://github.com/TheAlgorithms/JavaScript/blob/master/Sorts/MergeSort.js) \ No newline at end of file diff --git "a/he/\327\236\327\252\327\236\327\230\327\231\327\247\327\224 \327\221\327\241\327\231\327\241\327\231\327\252/\327\236\327\241\327\244\327\250\327\231 \327\244\327\231\327\221\327\225\327\240\327\220\327\246'\327\231.md" "b/he/\327\236\327\252\327\236\327\230\327\231\327\247\327\224 \327\221\327\241\327\231\327\241\327\231\327\252/\327\236\327\241\327\244\327\250\327\231 \327\244\327\231\327\221\327\225\327\240\327\220\327\246'\327\231.md" index 6881e908..d2a3e9a9 100644 --- "a/he/\327\236\327\252\327\236\327\230\327\231\327\247\327\224 \327\221\327\241\327\231\327\241\327\231\327\252/\327\236\327\241\327\244\327\250\327\231 \327\244\327\231\327\221\327\225\327\240\327\220\327\246'\327\231.md" +++ "b/he/\327\236\327\252\327\236\327\230\327\231\327\247\327\224 \327\221\327\241\327\231\327\241\327\231\327\252/\327\236\327\241\327\244\327\250\327\231 \327\244\327\231\327\221\327\225\327\240\327\220\327\246'\327\231.md" @@ -82,7 +82,6 @@ F(8)=21

יישום סדרת פיבונאצ'י בשפות תכנות שונות

- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/math/fibonacci.cpp) -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/maths/FibonacciNumber.java) - [Javascript](https://github.com/TheAlgorithms/Javascript/blob/80c2dc85d714f73783f133964d6acd9b5625ddd9/Maths/Fibonacci.js) - [Python](https://github.com/TheAlgorithms/Python/blob/master/maths/fibonacci.py) diff --git "a/ko/\352\270\260\354\264\210 \354\210\230\355\225\231/\353\223\261\353\271\204\354\210\230\354\227\264.md" "b/ko/\352\270\260\354\264\210 \354\210\230\355\225\231/\353\223\261\353\271\204\354\210\230\354\227\264.md" index 71c9c6cf..663d61c3 100644 --- "a/ko/\352\270\260\354\264\210 \354\210\230\355\225\231/\353\223\261\353\271\204\354\210\230\354\227\264.md" +++ "b/ko/\352\270\260\354\264\210 \354\210\230\355\225\231/\353\223\261\353\271\204\354\210\230\354\227\264.md" @@ -46,7 +46,6 @@ ## 영상 URL - [Don't Memorise](https://youtu.be/gua96ju_FBk) -- [Code Bashers (C++)](https://youtu.be/92ZldzuGUHs) ## 출처 diff --git "a/ko/\354\236\220\353\243\214\352\265\254\354\241\260/\354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270/\353\213\250\354\235\274 \354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270.md" "b/ko/\354\236\220\353\243\214\352\265\254\354\241\260/\354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270/\353\213\250\354\235\274 \354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270.md" index ac53bd43..e2402b33 100644 --- "a/ko/\354\236\220\353\243\214\352\265\254\354\241\260/\354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270/\353\213\250\354\235\274 \354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270.md" +++ "b/ko/\354\236\220\353\243\214\352\265\254\354\241\260/\354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270/\353\213\250\354\235\274 \354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270.md" @@ -43,7 +43,6 @@ class LinkedList { - [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/datastructures/lists/SinglyLinkedList.java) - [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/Data%20Structure/Linked%20List.cpp) - [Python](https://github.com/TheAlgorithms/Python/blob/master/data_structures/linked_list/singly_linked_list.py) -- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/data_structures/linked_lists/single_list.rb) ## 영상 URL diff --git "a/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\353\263\221\355\225\251 \354\240\225\353\240\254.md" "b/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\353\263\221\355\225\251 \354\240\225\353\240\254.md" index 93669e29..fd19920c 100644 --- "a/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\353\263\221\355\225\251 \354\240\225\353\240\254.md" +++ "b/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\353\263\221\355\225\251 \354\240\225\353\240\254.md" @@ -35,9 +35,6 @@ Now merge both these halves to get the sorted array [0, 1, 2, 3, 5, 9] - [Java](https://github.com/TheAlgorithms/Java/blob/master/Sorts/MergeSort.java) - [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/sorting/merge_sort.cpp) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/merge_sort.py) -- [C#](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Sorters/Comparison/MergeSorter.cs) -- [C](https://github.com/TheAlgorithms/C/blob/master/sorting/merge_sort.c) - [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/sorting/merge_sort.rb) ## 영상 URL diff --git "a/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\355\236\231 \354\240\225\353\240\254.md" "b/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\355\236\231 \354\240\225\353\240\254.md" index adf00c33..446f16e4 100644 --- "a/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\355\236\231 \354\240\225\353\240\254.md" +++ "b/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\355\236\231 \354\240\225\353\240\254.md" @@ -58,7 +58,6 @@ $O(1)$ 최악의 경우 - [자바](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/HeapSort.java) - [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/sorting/heap_sort.cpp) - [파이썬](https://github.com/TheAlgorithms/Python/blob/master/sorts/heap_sort.py) -- [고](https://github.com/TheAlgorithms/Go/blob/master/sorts/heapsort.go) - [루비](https://github.com/TheAlgorithms/Ruby/blob/master/sorting/heap_sort.rb) - [C-Sharp](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Sorters/Comparison/HeapSorter.cs) - [C](https://github.com/TheAlgorithms/C/blob/master/sorting/heap_sort.c) diff --git "a/ko/\355\203\220\354\203\211 \354\225\214\352\263\240\353\246\254\354\246\230/\354\204\240\355\230\225 \355\203\220\354\203\211.md" "b/ko/\355\203\220\354\203\211 \354\225\214\352\263\240\353\246\254\354\246\230/\354\204\240\355\230\225 \355\203\220\354\203\211.md" index 4b0f1ba4..51c160b5 100644 --- "a/ko/\355\203\220\354\203\211 \354\225\214\352\263\240\353\246\254\354\246\230/\354\204\240\355\230\225 \355\203\220\354\203\211.md" +++ "b/ko/\355\203\220\354\203\211 \354\225\214\352\263\240\353\246\254\354\246\230/\354\204\240\355\230\225 \355\203\220\354\203\211.md" @@ -47,7 +47,6 @@ target = 6 ## 구현 - [Java](https://github.com/TheAlgorithms/Java/blob/master/Searches/LinearSearch.java) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/Search/Linear%20Search.cpp) - [Python](https://github.com/TheAlgorithms/Python/blob/master/searches/linear_search.py) ## 영상 URL diff --git a/pt-br/Algoritmos de Busca/Busca Linear.md b/pt-br/Algoritmos de Busca/Busca Linear.md index f88b10ca..a918982d 100644 --- a/pt-br/Algoritmos de Busca/Busca Linear.md +++ b/pt-br/Algoritmos de Busca/Busca Linear.md @@ -36,7 +36,6 @@ alvo = 6 #### Links de implementação de código - [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/searches/LinearSearch.java) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/Search/Linear%20Search.cpp) - [Python](https://github.com/TheAlgorithms/Python/blob/master/searches/linear_search.py) #### Explicação em vídeo diff --git "a/pt-br/Algoritmos de Ordena\303\247\303\243o/Merge Sort.md" "b/pt-br/Algoritmos de Ordena\303\247\303\243o/Merge Sort.md" index 8f989b47..bdd774f0 100644 --- "a/pt-br/Algoritmos de Ordena\303\247\303\243o/Merge Sort.md" +++ "b/pt-br/Algoritmos de Ordena\303\247\303\243o/Merge Sort.md" @@ -35,9 +35,6 @@ Agora mescle as duas metades para obter a matriz classificada [0, 1, 2, 3, 5, 9] - [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/MergeSort.java) - [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/sorting/merge_sort.cpp) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/merge_sort.py) -- [C-Sharp](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Sorters/Comparison/MergeSorter.cs) -- [C](https://github.com/TheAlgorithms/C/blob/master/sorting/merge_sort.c) - [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/sorting/merge_sort.rb) #### Explicação em vídeo diff --git a/pt-br/Estruturas de Dados/Linked Lists/Lista individual.md b/pt-br/Estruturas de Dados/Linked Lists/Lista individual.md index 4066be8a..ec7d3f74 100644 --- a/pt-br/Estruturas de Dados/Linked Lists/Lista individual.md +++ b/pt-br/Estruturas de Dados/Linked Lists/Lista individual.md @@ -42,7 +42,6 @@ class LinkedList { - [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/datastructures/lists/SinglyLinkedList.java) - [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/Data%20Structure/Linked%20List.cpp) - [Python](https://github.com/TheAlgorithms/Python/blob/master/data_structures/linked_list/singly_linked_list.py) -- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/data_structures/linked_lists/single_list.rb) ## Explicação em vídeo From 4aef4f1c7eab0678ab6ddb92f7aa5cc43cd2ab14 Mon Sep 17 00:00:00 2001 From: vil02 Date: Thu, 4 Apr 2024 19:38:30 +0200 Subject: [PATCH 32/40] docs: remove implementation sections --- en/Basic Math/Average_Mean.md | 5 ---- en/Basic Math/Fibonacci_Numbers.md | 15 ---------- en/Basic Math/Find the maximum number.md | 4 --- en/Ciphers/caesar_cipher.md | 8 ----- en/Ciphers/hill_cipher.md | 4 --- en/Ciphers/playfair-cipher.md | 4 --- en/Ciphers/rsa_cipher.md | 7 ----- en/Ciphers/vigenere_cipher.md | 10 ------- en/Data Structures/Graph/Bellman-Ford.md | 7 ----- .../Linked Lists/Circular Linked List.md | 6 ---- .../Linked Lists/Doubly Linked List.md | 8 ----- .../Linked Lists/Singly Linked List.md | 6 ---- .../Probablistic/BloomFilter.md | 6 ---- en/Dynamic Programming/Coin Change.md | 13 --------- en/Dynamic Programming/Kadane's Algorithm.md | 6 ---- .../Longest Common Subsequence.md | 6 ---- en/Greedy Algorithms/Fractional Knapsack.md | 6 ---- en/Image Processing/Harris Detector.md | 4 --- en/Search Algorithms/Binary Search.md | 8 ----- en/Search Algorithms/Exponential Search.md | 6 ---- ...tion Algorithm to Find Duplicate Number.md | 4 --- en/Search Algorithms/Linear Search.md | 7 ----- .../Find Second Largest Element.md | 4 --- en/Selection Algorithms/Quick Select.md | 7 ----- en/Sorting Algorithms/Bubble Sort.md | 28 ------------------ en/Sorting Algorithms/Counting Sort.md | 16 ---------- en/Sorting Algorithms/Heap Sort.md | 22 -------------- en/Sorting Algorithms/Insertion Sort.md | 28 ------------------ en/Sorting Algorithms/Merge Sort.md | 25 ---------------- en/Sorting Algorithms/Quick Sort.md | 29 ------------------- en/Sorting Algorithms/Radix Sort.md | 18 ------------ .../Recursive Bubble Sort.md | 5 ---- en/Sorting Algorithms/Selection Sort.md | 29 ------------------- en/Sorting Algorithms/Shell Sort.md | 17 ----------- .../Ordenamiento Burbuja.md | 12 -------- .../Ordenamiento Shell.md | 11 ------- .../Ordenamiento de fusi\303\263n.md" | 6 ---- .../Ordenamiento de inserci\303\263n.md" | 10 ------- ...enamiento de mont\303\263n (heap sort).md" | 11 ------- .../Ordenamiento de selecci\303\263n.md" | 11 ------- .../Ordenamiento r\303\241pido.md" | 7 ----- .../B\303\272squeda binaria.md" | 18 ------------ .../B\303\272squeda exponencial.md" | 5 ---- .../B\303\272squeda lineal.md" | 17 ----------- .../Selecci\303\263n R\303\241pida.md" | 5 ---- es/Cifrado/Cifrado Cesar.md | 6 ---- .../Gr\303\241fico/Bellman Ford.md" | 7 ----- .../Doble lista vinculada.md | 8 ----- .../Lista singular vinculada.md | 5 ---- .../Numeros_Fibonacci.md" | 7 ----- "es/Matematicas B\303\241sico/Promedio.md" | 4 --- .../Detector de Harris.md | 4 --- .../Cambio de monedas.md" | 9 ------ ...ecuencia com\303\272n m\303\241s larga.md" | 9 ------ fr/filtres_audio/filtre_butterworth.md | 4 --- fr/math/Determinant.md | 4 --- fr/math/Suite_de_Fibonacci.md | 4 --- .../Suite_de_Fibonacci_r\303\251cursive.md" | 4 --- fr/tri/Tri_fusion.md | 8 ----- fr/tri/Tri_par_insertion.md | 4 --- fr/tri/Tri_par_selection.md | 13 --------- "fr/tri/Tri_\303\240_bulles.md" | 12 -------- ...7\225\327\240\327\220\327\246'\327\231.md" | 6 ---- ...0\353\202\255 \353\254\270\354\240\234.md" | 6 ---- .../\354\265\234\353\214\223\352\260\222.md" | 4 --- .../\355\217\211\352\267\240\352\260\222.md" | 5 ---- ...4\353\202\230\354\271\230 \354\210\230.md" | 7 ----- ...5 \354\205\200\353\240\211\355\212\270.md" | 7 ----- ...14\352\263\240\353\246\254\354\246\230.md" | 7 ----- ...0 \353\246\254\354\212\244\355\212\270.md" | 6 ---- ...0 \353\246\254\354\212\244\355\212\270.md" | 6 ---- ...0 \353\246\254\354\212\244\355\212\270.md" | 8 ----- ...4\354\210\230 \354\240\225\353\240\254.md" | 9 ------ ...\352\267\200 \353\262\204\354\240\204).md" | 5 ---- ...4\353\270\224 \354\240\225\353\240\254.md" | 12 -------- ...1\355\225\251 \354\240\225\353\240\254.md" | 6 ---- ...5\354\236\205 \354\240\225\353\240\254.md" | 10 ------- ...0\355\203\235 \354\240\225\353\240\254.md" | 11 ------- .../\354\205\270 \354\240\225\353\240\254.md" | 11 ------- .../\355\200\265 \354\240\225\353\240\254.md" | 7 ----- .../\355\236\231 \354\240\225\353\240\254.md" | 10 ------- ...0\355\230\225 \355\203\220\354\203\211.md" | 5 ---- ...4\354\247\204 \355\203\220\354\203\211.md" | 8 ----- ...0\354\210\230 \355\203\220\354\203\211.md" | 5 ---- ...14\352\263\240\353\246\254\354\246\230.md" | 5 ---- pt-br/Algoritmos de Busca/Busca Binaria.md | 8 ----- pt-br/Algoritmos de Busca/Busca Linear.md | 5 ---- .../Bubble Sort.md" | 12 -------- .../Heap Sort.md" | 11 ------- .../Insertion Sort.md" | 10 ------- .../Merge Sort.md" | 6 ---- .../Quick Sort.md" | 7 ----- .../Selection Sort.md" | 11 ------- .../Shell Sort.md" | 11 ------- .../Estruturas de Dados/Graph/Bellman-Ford.md | 7 ----- .../Lista Duplamente Vinculada.md | 8 ----- .../Linked Lists/Lista individual.md | 6 ---- .../M\303\251dia.md" | 4 --- ...axima - Maior Subsequencia Comum (LCS).md" | 6 ---- .../Trocando moedas.md" | 4 --- ...20\237\320\276\320\270\321\201\320\272.md" | 8 ----- ...20\260\320\275\320\264\320\276\320\262.md" | 5 ---- .../Fibonachi sonlari.md | 7 ----- 103 files changed, 905 deletions(-) diff --git a/en/Basic Math/Average_Mean.md b/en/Basic Math/Average_Mean.md index be5f191b..f31972d5 100644 --- a/en/Basic Math/Average_Mean.md +++ b/en/Basic Math/Average_Mean.md @@ -57,11 +57,6 @@ If we properly consider significant digits: `sum / count = 23` Return the value of 22.857142 or `23`. -## Implementation - -- [Python](https://github.com/TheAlgorithms/Python/blob/master/maths/average_mean.py) -- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/maths/average_mean.rb) - ## Video URL - [Mean on Khan Academy](https://www.khanacademy.org/math/ap-statistics/summarizing-quantitative-data-ap/measuring-center-quantitative/v/mean-median-and-mode) diff --git a/en/Basic Math/Fibonacci_Numbers.md b/en/Basic Math/Fibonacci_Numbers.md index bb61a3e0..eb8fac3f 100644 --- a/en/Basic Math/Fibonacci_Numbers.md +++ b/en/Basic Math/Fibonacci_Numbers.md @@ -55,21 +55,6 @@ Calculate matrix^8 ### Step 5 F(8)=21 -## Implementation - -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/math/fibonacci.cpp) -- [Elixir](https://github.com/TheAlgorithms/Elixir/blob/master/lib/dynamic_programming/fibonacci.ex) -- [F#](https://github.com/TheAlgorithms/F-Sharp/blob/main/Algorithms/Math/Fibonacci.fs) -- [Go](https://github.com/TheAlgorithms/Go/blob/master/dynamic/fibonacci.go) -- [Haskell](https://github.com/TheAlgorithms/Haskell/blob/master/src/Maths/Fibonacci.hs) -- [JavaScript](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/Fibonacci.js) -- [PHP](https://github.com/TheAlgorithms/PHP/blob/master/Maths/Fibonacci.php) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/maths/fibonacci.py) -- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/maths/fibonacci.rb) -- [Rust](https://github.com/TheAlgorithms/Rust/blob/master/src/dynamic_programming/fibonacci.rs) -- [Scala](https://github.com/TheAlgorithms/Scala/blob/master/src/main/scala/Mathematics/Fibonacci.scala) -- [Swift](https://github.com/TheAlgorithms/Swift/blob/master/recursion/fibonacci.swift) - ## Video URL - [Youtube](https://www.youtube.com/watch?v=EEb6JP3NXBI) diff --git a/en/Basic Math/Find the maximum number.md b/en/Basic Math/Find the maximum number.md index 1e7cf5f0..6579ad98 100644 --- a/en/Basic Math/Find the maximum number.md +++ b/en/Basic Math/Find the maximum number.md @@ -98,10 +98,6 @@ Get the last value out of the list by using predefined last method. Return the value 70. -## Implementation - -- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/maths/find_max.rb) - # Source - [GeeksForGeeks](https://www.geeksforgeeks.org/c-program-find-largest-element-array/) diff --git a/en/Ciphers/caesar_cipher.md b/en/Ciphers/caesar_cipher.md index 9b1ba40f..592b0374 100644 --- a/en/Ciphers/caesar_cipher.md +++ b/en/Ciphers/caesar_cipher.md @@ -35,11 +35,3 @@ Let us say we are sending a secret message to a friend. * The second letter is `h`. The letter 6 letters away is `n`. Our message is now `Zn` * We continue like that until the end. Our final message is: `Znk Igkygx iovnkx oy g lat yahyzozazout iovnkx.` * Decryption is the same way, except instead of going to the right in the alphabet, we go backwards. - -## Implementation - -* [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/ciphers/caesar_cipher.cpp) -* [JavaScript](https://github.com/TheAlgorithms/JavaScript/blob/master/Ciphers/CaesarCipher.js) -* [PHP](https://github.com/TheAlgorithms/PHP/blob/master/Ciphers/CaesarCipher.php) -* [Python](https://github.com/TheAlgorithms/Python/blob/master/ciphers/caesar_cipher.py) - diff --git a/en/Ciphers/hill_cipher.md b/en/Ciphers/hill_cipher.md index 5c473e47..775e0ecb 100644 --- a/en/Ciphers/hill_cipher.md +++ b/en/Ciphers/hill_cipher.md @@ -54,10 +54,6 @@ So we will get the encrypted text as **POH**. [21 12 8] [7] [539] [19] ``` -## Implementations - -[**Python**](https://github.com/TheAlgorithms/Python/blob/master/ciphers/hill_cipher.py) - ## Video Explanation [Video explanation of the Hill Cipher](https://www.youtube.com/watch?v=6T46sgty4Mk) diff --git a/en/Ciphers/playfair-cipher.md b/en/Ciphers/playfair-cipher.md index 7e1c3bc1..158a4a92 100644 --- a/en/Ciphers/playfair-cipher.md +++ b/en/Ciphers/playfair-cipher.md @@ -117,10 +117,6 @@ So we will get the encrypted text as **gatlmzclrqxa**. ``` So we will get the encrypted text as **instrumentsx**. -## Implementations - -- [**Python**](https://github.com/TheAlgorithms/Python/blob/master/ciphers/playfair_cipher.py) - ## Video Explanation - [**Video explanation of the Playfair Cipher algorithm**](https://www.youtube.com/watch?v=UURjVI5cw4g) diff --git a/en/Ciphers/rsa_cipher.md b/en/Ciphers/rsa_cipher.md index 97649cec..3cae166d 100644 --- a/en/Ciphers/rsa_cipher.md +++ b/en/Ciphers/rsa_cipher.md @@ -153,10 +153,3 @@ Enter your Private Key: 23 PlainText: 51 ``` - -## Implementations - -- [Python](https://github.com/TheAlgorithms/Python/blob/master/ciphers/rsa_cipher.py) -- [GoLang](https://github.com/TheAlgorithms/Go/blob/master/cipher/rsa/rsa.go) -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/ciphers/RSA.java) -- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/ciphers/rsa.rb) \ No newline at end of file diff --git a/en/Ciphers/vigenere_cipher.md b/en/Ciphers/vigenere_cipher.md index 88768aaa..94bf5749 100644 --- a/en/Ciphers/vigenere_cipher.md +++ b/en/Ciphers/vigenere_cipher.md @@ -61,13 +61,3 @@ Decryption is similar to encryption (except for the subtraction operation). - [Index of coincidence](https://en.wikipedia.org/wiki/Index_of_coincidence) 3. Once the key length is found, [frequency analysis](https://en.wikipedia.org/wiki/Frequency_analysis) can be used to find the key and hence crack the cipher. 4. Therefore, this cipher should not be used to encrypt any important data. - -## Implementations - -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/ciphers/vigenere_cipher.cpp) -- [C#](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Encoders/VigenereEncoder.cs) -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/ciphers/Vigenere.java) -- [JavaScript](https://github.com/TheAlgorithms/JavaScript/blob/master/Ciphers/VigenereCipher.js) -- [Julia](https://github.com/TheAlgorithms/Julia/blob/main/src/cipher/vigenere.jl) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/ciphers/vigenere_cipher.py) -- [Rust](https://github.com/TheAlgorithms/Rust/blob/master/src/ciphers/vigenere.rs) diff --git a/en/Data Structures/Graph/Bellman-Ford.md b/en/Data Structures/Graph/Bellman-Ford.md index ee30886e..49b1e59c 100644 --- a/en/Data Structures/Graph/Bellman-Ford.md +++ b/en/Data Structures/Graph/Bellman-Ford.md @@ -88,13 +88,6 @@ O(V^2) E 1 A->B->E = -1 + 2 ``` -#### Code Implementation Links - -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/datastructures/graphs/BellmanFord.java) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/dynamic_programming/bellman_ford.cpp) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/graphs/bellman_ford.py) -- [C](https://github.com/TheAlgorithms/C/blob/master/data_structures/graphs/bellman_ford.c) - #### Video Explanation [A video explaining the Bellman-Ford Algorithm](https://www.youtube.com/watch?v=hxMWBBCpR6A) diff --git a/en/Data Structures/Linked Lists/Circular Linked List.md b/en/Data Structures/Linked Lists/Circular Linked List.md index 4c031bd7..bf5d5081 100644 --- a/en/Data Structures/Linked Lists/Circular Linked List.md +++ b/en/Data Structures/Linked Lists/Circular Linked List.md @@ -64,12 +64,6 @@ public void insertHead(int data) } ``` -## Code Implementation Links - -- [JavaScript](https://github.com/TheAlgorithms/JavaScript/blob/master/Data-Structures/Linked-List/SinglyCircularLinkedList.js) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/data_structures/cll/cll.cpp) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/data_structures/linked_list/circular_linked_list.py) - ## Video Explanation [Video explanation on YouTube](https://youtu.be/HMkdlu5sP4A) diff --git a/en/Data Structures/Linked Lists/Doubly Linked List.md b/en/Data Structures/Linked Lists/Doubly Linked List.md index e4cbb791..65fb7692 100644 --- a/en/Data Structures/Linked Lists/Doubly Linked List.md +++ b/en/Data Structures/Linked Lists/Doubly Linked List.md @@ -100,14 +100,6 @@ class LinkedList { ![Tracing of algorithm](https://www.geeksforgeeks.org/wp-content/uploads/gq/2014/03/DLL_add_middle1.png) -## Code Implementation Links - -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/datastructures/lists/DoublyLinkedList.java) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/data_structures/doubly_linked_list.cpp) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/data_structures/linked_list/doubly_linked_list.py) -- [Go](https://github.com/TheAlgorithms/Go/blob/master/data-structures/linked-list/double-linkedlist.go) -- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/data_structures/linked_lists/double_list.rb) - ## Video Explanation [A CS50 video explaining the Doubly Linked List Data Structure](https://www.youtube.com/watch?v=FHMPswJDCvU) diff --git a/en/Data Structures/Linked Lists/Singly Linked List.md b/en/Data Structures/Linked Lists/Singly Linked List.md index 729eba0a..4b7e5823 100644 --- a/en/Data Structures/Linked Lists/Singly Linked List.md +++ b/en/Data Structures/Linked Lists/Singly Linked List.md @@ -37,12 +37,6 @@ class LinkedList { } ``` -## Code Implementation Links - -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/datastructures/lists/SinglyLinkedList.java) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/data_structures/linked_list.cpp) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/data_structures/linked_list/singly_linked_list.py) - ## Video Explanation [A CS50 video explaining the Linked List Data Structure](https://www.youtube.com/watch?v=5nsKtQuT6E8) diff --git a/en/Data Structures/Probablistic/BloomFilter.md b/en/Data Structures/Probablistic/BloomFilter.md index b1752d9b..3fc5a19a 100644 --- a/en/Data Structures/Probablistic/BloomFilter.md +++ b/en/Data Structures/Probablistic/BloomFilter.md @@ -117,12 +117,6 @@ Notice that this does not match either the result of `foo` or `bar`, however bec The probability of false positives increases with the probability of hash collisions within the filter. However, you can optimize the number of collisions if you have some sense of the cardinality of your set ahead of time. You can do this by optimizing `k` and `M`, `M` should be ~ 8-10 bits per expected item, and `k` should be `(M/n) * ln2`. -## Examples - -Implementations of the Bloom Filter are available for: - -* [C#](https://github.com/TheAlgorithms/C-Sharp/blob/master/DataStructures/Probabilistic/BloomFilter.cs) - ## Video Explainer [Video Explainer by Narendra L](https://www.youtube.com/watch?v=Bay3X9PAX5k) \ No newline at end of file diff --git a/en/Dynamic Programming/Coin Change.md b/en/Dynamic Programming/Coin Change.md index 1ea91c86..187f0dc0 100644 --- a/en/Dynamic Programming/Coin Change.md +++ b/en/Dynamic Programming/Coin Change.md @@ -48,18 +48,5 @@ Let's say we have 3 coin types `[1,2,3]` and we want to change for `7` cents. So ``` So the final answer is **8**. 8 ways to make change of 7 cents using all coin types. `{{1,1,1,1,1,1,1}, {1,1,1,1,1,2}, {1,1,1,2,2}, {1,2,2,2}, {1,1,1,1,3}, {1,3,3}, {2,2,3}, {1,1,2,3}}` -#### Code Implementation Link -- [JavaScript](https://github.com/TheAlgorithms/JavaScript/blob/master/Dynamic-Programming/CoinChange.js) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/dynamic_programming/coin_change.cpp) -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/greedyalgorithms/CoinChange.java) -- [Go](https://github.com/TheAlgorithms/Go/blob/master/dynamic/coinchange.go) -- [Rust](https://github.com/TheAlgorithms/Rust/blob/master/src/dynamic_programming/coin_change.rs) -- [Dart](https://github.com/TheAlgorithms/Dart/blob/master/dynamic_programming/coin_change.dart) -- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/dynamic_programming/coin_change.rb) -- [Scala](https://github.com/TheAlgorithms/Scala/blob/master/src/main/scala/DynamicProgramming/CoinChange.scala) -- [Julia](https://github.com/TheAlgorithms/Julia/blob/main/src/dynamic_programming/coin_change.jl) -- [Lua](https://github.com/TheAlgorithms/Lua/blob/main/src/misc/coin_change.lua) -- [C#](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Problems/DynamicProgramming/CoinChange/DynamicCoinChangeSolver.cs) - #### Video Explanation [Total Unique Ways To Make Change by Back To Back SWE](https://www.youtube.com/watch?v=DJ4a7cmjZY0) diff --git a/en/Dynamic Programming/Kadane's Algorithm.md b/en/Dynamic Programming/Kadane's Algorithm.md index 1b82136d..6d6c89f0 100644 --- a/en/Dynamic Programming/Kadane's Algorithm.md +++ b/en/Dynamic Programming/Kadane's Algorithm.md @@ -106,12 +106,6 @@ largest_sum = max(5, 6) = 6 ```Hence the output will be 6``` - - -### Code Implementation Links - -- [Python](https://github.com/TheAlgorithms/Python/blob/252df0a149502143a14e7283424d40b785dd451c/maths/kadanes.py) - ### Video Explanation Link - [Kadane's Algorithm to Maximum Sum Subarray Problem](https://www.youtube.com/watch?v=86CQq3pKSUw) diff --git a/en/Dynamic Programming/Longest Common Subsequence.md b/en/Dynamic Programming/Longest Common Subsequence.md index 2dc8f1ed..d613f807 100644 --- a/en/Dynamic Programming/Longest Common Subsequence.md +++ b/en/Dynamic Programming/Longest Common Subsequence.md @@ -69,12 +69,6 @@ B 0 0 1 2 3 ``` So the length of LCS is `dp[4][4] = 3`. -#### Code Implementation Links - -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/dynamicprogramming/LongestCommonSubsequence.java) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/dynamic_programming/longest_common_subsequence.py) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/Dynamic%20Programming/Longest%20Common%20Subsequence.cpp) - #### Video Explanation [Video explanation by Tushar Roy](https://youtu.be/NnD96abizww) diff --git a/en/Greedy Algorithms/Fractional Knapsack.md b/en/Greedy Algorithms/Fractional Knapsack.md index cc9eb8c8..fb49dab1 100644 --- a/en/Greedy Algorithms/Fractional Knapsack.md +++ b/en/Greedy Algorithms/Fractional Knapsack.md @@ -35,12 +35,6 @@ We won't be able to make more money by combining diverse things. ``` -#### Code Implementation Links - -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/greedy_algorithms/knapsack.cpp) -- [Python](https://github.com/TheAlgorithms/Python/tree/master/knapsack) -- [C-Sharp](https://github.com/TheAlgorithms/C-Sharp/tree/master/Algorithms/Knapsack) - #### Video Explanation [A CS50 video explaining the Greedy Algorithm](https://www.youtube.com/watch?v=Ou9OA0yQCYA) diff --git a/en/Image Processing/Harris Detector.md b/en/Image Processing/Harris Detector.md index a0b7388e..16b5f3ed 100644 --- a/en/Image Processing/Harris Detector.md +++ b/en/Image Processing/Harris Detector.md @@ -13,10 +13,6 @@ Given image $I$, $n\times n$ size Gaussian Kernel $G_{n\times n}$, 3. Compute the response function $R$, where $R=AB-C^2-k(A+B)$ 4. Classify all points in $R​$. -## Code Implementation Links - -- [Python](https://github.com/TheAlgorithms/Python/blob/master/computer_vision/harriscorner.py) - ## Reference C. Harris and M. Stephens, “A Combined Corner and Edge Detector,” in *Proceedings of the Alvey Vision Conference 1988*, Manchester, 1988, pp. 23.1-23.6. diff --git a/en/Search Algorithms/Binary Search.md b/en/Search Algorithms/Binary Search.md index 3f18817e..ff704de5 100644 --- a/en/Search Algorithms/Binary Search.md +++ b/en/Search Algorithms/Binary Search.md @@ -38,14 +38,6 @@ target = 9 A simple Binary Search implementation may return -1 as 9 is not present in the array. A more complex one would return the index at which 9 would have to be inserted, which would be `-8` (last position in the array (7) plus one (7+1), negated)`. ``` -#### Code Implementation Links - -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/searches/BinarySearch.java) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/search/binary_search.cpp) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/searches/binary_search.py) -- [C-Sharp](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Search/BinarySearcher.cs) -- [C](https://github.com/TheAlgorithms/C/blob/master/searching/binary_search.c) - #### Video Explanation [A CS50 video explaining the Binary Search Algorithm](https://www.youtube.com/watch?v=5xlIPT1FRcA) diff --git a/en/Search Algorithms/Exponential Search.md b/en/Search Algorithms/Exponential Search.md index 8c363cc2..bca641ab 100644 --- a/en/Search Algorithms/Exponential Search.md +++ b/en/Search Algorithms/Exponential Search.md @@ -53,9 +53,3 @@ Let's take a look at this comparison with a less theoretical example. Imagine we - The Binary Search start from the middle of the array and arrive to the 4th position after many iterations - The Exponential Search arrive at the 4th index after only 2 iterations - -#### Code Implementation Links - -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/search/exponential_search.cpp) -- [C](https://github.com/TheAlgorithms/C/blob/master/searching/exponential_search.c) -- [JavaScript](https://github.com/TheAlgorithms/Javascript/blob/master/Search/ExponentialSearch.js) diff --git a/en/Search Algorithms/Floyd Cycle Detection Algorithm to Find Duplicate Number.md b/en/Search Algorithms/Floyd Cycle Detection Algorithm to Find Duplicate Number.md index b23d0a56..a431d58d 100644 --- a/en/Search Algorithms/Floyd Cycle Detection Algorithm to Find Duplicate Number.md +++ b/en/Search Algorithms/Floyd Cycle Detection Algorithm to Find Duplicate Number.md @@ -67,10 +67,6 @@ tortoise = arr[0] = 3 return tortoise = 4 ``` -## Code Implementation Links - -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/search/floyd_cycle_detection_algo.cpp) -- [C](https://github.com/TheAlgorithms/C/blob/master/searching/floyd_cycle_detection_algorithm.c) #### Video Explanation - [YouTube video explaining the Floyd Cycle Detection algorithm](https://www.youtube.com/watch?v=B6smdk7pZ14) diff --git a/en/Search Algorithms/Linear Search.md b/en/Search Algorithms/Linear Search.md index eb6f90bf..4da70e54 100644 --- a/en/Search Algorithms/Linear Search.md +++ b/en/Search Algorithms/Linear Search.md @@ -33,13 +33,6 @@ target = 6 Linear Search should return -1 as 6 is not present in the array ``` -#### Code Implementation Links - -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/searches/LinearSearch.java) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/search/linear_search.cpp) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/searches/linear_search.py) -- [C](https://github.com/TheAlgorithms/C/blob/master/searching/linear_search.c) - #### Video Explanation [A CS50 video explaining the Linear Search Algorithm](https://www.youtube.com/watch?v=CX2CYIJLwfg) diff --git a/en/Selection Algorithms/Find Second Largest Element.md b/en/Selection Algorithms/Find Second Largest Element.md index 32e21904..14971faa 100644 --- a/en/Selection Algorithms/Find Second Largest Element.md +++ b/en/Selection Algorithms/Find Second Largest Element.md @@ -65,10 +65,6 @@ True : b = arr[6] (b = 25) Now we get the value 25 in the variable "b", which is the second highest value in the array. ``` -#### Code Implementation Links - -[JavaScript](https://github.com/TheAlgorithms/JavaScript/blob/master/Sorts/FindSecondLargestElement.js) - #### Video Explanation [Video explaining 2 approaches](https://www.youtube.com/watch?v=Mv8jhYQEbkA) diff --git a/en/Selection Algorithms/Quick Select.md b/en/Selection Algorithms/Quick Select.md index 706dcb97..cc915e4e 100644 --- a/en/Selection Algorithms/Quick Select.md +++ b/en/Selection Algorithms/Quick Select.md @@ -41,13 +41,6 @@ Let's say k = 4. ie. We have to find 4th smallest element. 4. As position of '7' is 4th (ie. k). Thus we will simply return 7 ``` -### Code Implementation Links - -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/searches/QuickSelect.java) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/searches/quick_select.py) -- [Go](https://github.com/TheAlgorithms/Go/blob/master/search/selectk.go) -- [JavaScript](https://github.com/TheAlgorithms/JavaScript/blob/master/Data-Structures/Array/QuickSelect.js) - ### Helpful Video Links [Video explaining how to find the Kth smallest/largest element in varying complexities](https://youtu.be/hGK_5n81drs) diff --git a/en/Sorting Algorithms/Bubble Sort.md b/en/Sorting Algorithms/Bubble Sort.md index 665f2bf9..3ce99615 100644 --- a/en/Sorting Algorithms/Bubble Sort.md +++ b/en/Sorting Algorithms/Bubble Sort.md @@ -79,34 +79,6 @@ Indexes: 0 1 2 3 Since there are no swaps in above steps, it means the array is sorted and we can stop here. ``` -#### Code Implementation Links - -- [Assembly](https://github.com/TheAlgorithms/AArch64_Assembly/blob/main/sorters/bubble_sort.s) -- [C](https://github.com/TheAlgorithms/C/blob/master/sorting/bubble_sort.c) -- [C#](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Sorters/Comparison/BubbleSorter.cs) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/sorting/bubble_sort.cpp) -- [Dart](https://github.com/TheAlgorithms/Dart/blob/master/sort/bubble_Sort.dart) -- [Elixir](https://github.com/TheAlgorithms/Elixir/blob/master/lib/sorting/bubble_sort.ex) -- [Elm](https://github.com/TheAlgorithms/Elm/blob/master/src/Sorting/BubbleSort.elm) -- [F#](https://github.com/TheAlgorithms/F-Sharp/blob/main/Algorithms/Sort/Bubble_Sort.fs) -- [Go](https://github.com/TheAlgorithms/Go/blob/master/sort/bubblesort.go) -- [Haskell](https://github.com/TheAlgorithms/Haskell/blob/master/src/Sorts/BubbleSort.hs) -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/BubbleSort.java) -- [Javascript](https://github.com/TheAlgorithms/JavaScript/blob/master/Sorts/BubbleSort.js) -- [Julia](https://github.com/TheAlgorithms/Julia/blob/main/src/sorts/bubble_sort.jl) -- [Kotlin](https://github.com/TheAlgorithms/Kotlin/blob/master/src/main/kotlin/sort/BubbleSort.kt) -- [Lua](https://github.com/TheAlgorithms/Lua/blob/main/src/sorting/bubblesort.lua) -- [Matlab](https://github.com/TheAlgorithms/MATLAB-Octave/blob/master/algorithms/sorting/bubble_sort.m) -- [PHP](https://github.com/TheAlgorithms/PHP/blob/master/Sorting/BubbleSort.php) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/bubble_sort.py) -- [R](https://github.com/TheAlgorithms/R/blob/master/sorting_algorithms/bubble_sort.r) -- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/sorting/bubble_sort.rb) -- [Rust](https://github.com/TheAlgorithms/Rust/blob/master/src/sorting/bubble_sort.rs) -- [Scala](https://github.com/TheAlgorithms/Scala/blob/master/src/main/scala/Sort/BubbleSort.scala) -- [Solidity](https://github.com/TheAlgorithms/Solidity/blob/main/src/Sorts/BubbleSort.sol) -- [Swift](https://github.com/TheAlgorithms/Swift/blob/master/sorts/BubbleSort.swift) -- [TypeScript](https://github.com/TheAlgorithms/TypeScript/blob/master/sorts/bubble_sort.ts) - #### Video Explanation [A video explaining the Bubble Sort Algorithm](https://www.youtube.com/watch?v=Jdtq5uKz-w4) diff --git a/en/Sorting Algorithms/Counting Sort.md b/en/Sorting Algorithms/Counting Sort.md index 1fdc7781..984d28bc 100644 --- a/en/Sorting Algorithms/Counting Sort.md +++ b/en/Sorting Algorithms/Counting Sort.md @@ -41,22 +41,6 @@ countingSort(array, size) decrease count of each element restored by 1 ``` -#### Code Implementation Links - -- [Assembly](https://github.com/TheAlgorithms/AArch64_Assembly/blob/main/sorters/counting_sort.s) -- [C](https://github.com/TheAlgorithms/C/blob/master/sorting/counting_sort.c) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/sorting/counting_sort.cpp) -- [Dart](https://github.com/TheAlgorithms/Dart/blob/master/sort/count_sort.dart) -- [Go](https://github.com/TheAlgorithms/Go/blob/master/sort/countingsort.go) -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/CountingSort.java) -- [JavaScript](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/CountingSort.js) -- [Julia](https://github.com/TheAlgorithms/Julia/blob/main/src/sorts/counting_sort.jl) -- [Matlab](https://github.com/TheAlgorithms/MATLAB-Octave/blob/master/algorithms/sorting/counting_sort.m) -- [PHP](https://github.com/TheAlgorithms/PHP/blob/master/Sorting/CountSort.php) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/counting_sort.py) -- [R](https://github.com/TheAlgorithms/R/blob/master/sorting_algorithms/counting_sort.r) -- [Rust](https://github.com/TheAlgorithms/Rust/blob/master/src/sorting/counting_sort.rs) - #### Video Explanation [A video explaining the Counting Sort Algorithm](https://www.youtube.com/watch?v=7zuGmKfUt7s) diff --git a/en/Sorting Algorithms/Heap Sort.md b/en/Sorting Algorithms/Heap Sort.md index 55a73d3b..7b545351 100644 --- a/en/Sorting Algorithms/Heap Sort.md +++ b/en/Sorting Algorithms/Heap Sort.md @@ -55,28 +55,6 @@ in top down manner. ![heap-image](https://upload.wikimedia.org/wikipedia/commons/1/1b/Sorting_heapsort_anim.gif "Heap Sort") -#### Code Implementation Links - -- [Assembly](https://github.com/TheAlgorithms/AArch64_Assembly/blob/main/sorters/heap_sort.s) -- [C](https://github.com/TheAlgorithms/C/blob/master/sorting/heap_sort.c) -- [C#](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Sorters/Comparison/HeapSorter.cs) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/sorting/heap_sort.cpp) -- [Dart](https://github.com/TheAlgorithms/Dart/blob/master/sort/heap_Sort.dart) -- [F#](https://github.com/TheAlgorithms/F-Sharp/blob/main/Algorithms/Sort/Heap_Sort.fs) -- [Go](https://github.com/TheAlgorithms/Go/blob/master/sort/heapsort.go) -- [Haskell](https://github.com/TheAlgorithms/Haskell/blob/master/src/Sorts/InsertionSort.hs) -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/HeapSort.java) -- [Javascript](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/HeapSort.js) -- [Julia](https://github.com/TheAlgorithms/Julia/blob/main/src/sorts/heap_sort.jl) -- [Kotlin](https://github.com/TheAlgorithms/Kotlin/blob/master/src/main/kotlin/sort/HeapSort.kt) -- [Lua](https://github.com/TheAlgorithms/Lua/blob/main/src/sorting/heapsort.lua) -- [Matlab](https://github.com/TheAlgorithms/MATLAB-Octave/blob/master/algorithms/sorting/heap_sort.m) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/heap_sort.py) -- [R](https://github.com/TheAlgorithms/R/blob/master/sorting_algorithms/heap_sort.r) -- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/sorting/heap_sort.rb) -- [Rust](https://github.com/TheAlgorithms/Rust/blob/master/src/sorting/heap_sort.rs) -- [Scala](https://github.com/TheAlgorithms/Scala/blob/master/src/main/scala/Sort/HeapSort.scala) - #### Video Explanation [A video explaining the Heap Sort Algorithm](https://www.youtube.com/watch?v=MtQL_ll5KhQ) diff --git a/en/Sorting Algorithms/Insertion Sort.md b/en/Sorting Algorithms/Insertion Sort.md index 6356815c..d1253151 100644 --- a/en/Sorting Algorithms/Insertion Sort.md +++ b/en/Sorting Algorithms/Insertion Sort.md @@ -48,34 +48,6 @@ and elements from 11 to 13 will move one position ahead of their current positio 5, 6, 11, 12, 13 -- sorted array ``` -#### Code Implementation Links - -- [Assembly](https://github.com/TheAlgorithms/AArch64_Assembly/blob/main/sorters/insertion_sort.s) -- [C](https://github.com/TheAlgorithms/C/blob/master/sorting/insertion_sort.c) -- [C#](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Sorters/Comparison/InsertionSorter.cs) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/sorting/insertion_sort.cpp) -- [Dart](https://github.com/TheAlgorithms/Dart/blob/master/sort/insert_Sort.dart) -- [Elixir](https://github.com/TheAlgorithms/Elixir/blob/master/lib/sorting/insertion_sort.ex) -- [Elm](https://github.com/TheAlgorithms/Elm/blob/master/src/Sorting/InsertionSort.elm) -- [F#](https://github.com/TheAlgorithms/F-Sharp/blob/main/Algorithms/Sort/Insertion_Sort.fs) -- [Go](https://github.com/TheAlgorithms/Go/blob/master/sort/insertionsort.go) -- [Haskell](https://github.com/TheAlgorithms/Haskell/blob/master/src/Sorts/InsertionSort.hs) -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/InsertionSort.java) -- [JavaScript](https://github.com/TheAlgorithms/JavaScript/blob/master/Sorts/InsertionSort.js) -- [Julia](https://github.com/TheAlgorithms/Julia/blob/main/src/sorts/insertion_sort.jl) -- [Kotlin](https://github.com/TheAlgorithms/Kotlin/blob/master/src/main/kotlin/sort/InsertionSort.kt) -- [Lua](https://github.com/TheAlgorithms/Lua/blob/main/src/sorting/insertionsort.lua) -- [Matlab](https://github.com/TheAlgorithms/MATLAB-Octave/blob/master/algorithms/sorting/insertion_sort.m) -- [PHP](https://github.com/TheAlgorithms/PHP/blob/master/Sorting/InsertionSort.php) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/insertion_sort.py) -- [R](https://github.com/TheAlgorithms/R/blob/master/sorting_algorithms/insertion_sort.r) -- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/sorting/insertion_sort.rb) -- [Rust](https://github.com/TheAlgorithms/Rust/blob/master/src/sorting/insertion_sort.rs) -- [Scala Iterative](https://github.com/TheAlgorithms/Scala/blob/master/src/main/scala/Sort/InsertionSort.scala) -- [Scala Recursive](https://github.com/TheAlgorithms/Scala/blob/master/src/main/scala/Sort/RecursiveInsertionSort.scala) -- [Swift](https://github.com/TheAlgorithms/Swift/blob/master/sorts/InsertionSort.swift) -- [TypeScript](https://github.com/TheAlgorithms/TypeScript/blob/master/sorts/insertion_sort.ts) - #### Video Explanation [A CS50 video explaining the Insertion Search Algorithm](https://www.youtube.com/watch?v=DFG-XuyPYUQ) diff --git a/en/Sorting Algorithms/Merge Sort.md b/en/Sorting Algorithms/Merge Sort.md index 08a3d541..d26b6275 100644 --- a/en/Sorting Algorithms/Merge Sort.md +++ b/en/Sorting Algorithms/Merge Sort.md @@ -59,31 +59,6 @@ Similarly [3, 7] and [4, 6] will be merged and made [3, 4, 6, 7]. At the next stack level [1, 2, 5, 9] and [3, 4, 6, 7] will be merged and we will get the final sorted array as [1, 2, 3, 4, 5, 6, 7, 9]. ``` -#### Code Implementation Links - -- [Assembly](https://github.com/TheAlgorithms/AArch64_Assembly/blob/main/sorters/merge_sort.s) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/sorting/merge_sort.cpp) -- [Dart](https://github.com/TheAlgorithms/Dart/blob/master/sort/merge_sort.dart) -- [Elixir](https://github.com/TheAlgorithms/Elixir/blob/master/lib/sorting/merge_sort.ex) -- [Elm](https://github.com/TheAlgorithms/Elm/blob/master/src/Sorting/MergeSort.elm) -- [F#](https://github.com/TheAlgorithms/F-Sharp/blob/main/Algorithms/Sort/Merge_Sort.fs) -- [Go](https://github.com/TheAlgorithms/Go/blob/master/sort/mergesort.go) -- [Haskell](https://github.com/TheAlgorithms/Haskell/blob/master/src/Sorts/MergeSort.hs) -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/MergeSort.java) -- [JavaScript](https://github.com/TheAlgorithms/JavaScript/blob/master/Sorts/MergeSort.js) -- [Julia](https://github.com/TheAlgorithms/Julia/blob/main/src/sorts/merge_sort.jl) -- [Kotlin](https://github.com/TheAlgorithms/Kotlin/blob/master/src/main/kotlin/sort/MergeSort.kt) -- [Lua](https://github.com/TheAlgorithms/Lua/blob/main/src/sorting/mergesort.lua) -- [Matlab](https://github.com/TheAlgorithms/MATLAB-Octave/blob/master/algorithms/sorting/merge_sort.m) -- [PHP](https://github.com/TheAlgorithms/PHP/blob/master/Sorting/MergeSort.php) -- [R](https://github.com/TheAlgorithms/R/blob/master/sorting_algorithms/merge_sort.r) -- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/sorting/merge_sort.rb) -- [Rust](https://github.com/TheAlgorithms/Rust/blob/master/src/sorting/merge_sort.rs) -- [Scala](https://github.com/TheAlgorithms/Scala/blob/master/src/main/scala/Sort/MergeSort.scala) -- [Solidity](https://github.com/TheAlgorithms/Solidity/blob/main/src/Sorts/MergeSort.sol) -- [Swift](https://github.com/TheAlgorithms/Swift/blob/master/sorts/MergeSort.swift) -- [TypeScript](https://github.com/TheAlgorithms/TypeScript/blob/master/sorts/merge_sort.ts) - #### Video Explanation [A CS50 video explaining the Merge Sort Algorithm](https://www.youtube.com/watch?v=EeQ8pwjQxTM) diff --git a/en/Sorting Algorithms/Quick Sort.md b/en/Sorting Algorithms/Quick Sort.md index bbd9b65e..666e0c46 100644 --- a/en/Sorting Algorithms/Quick Sort.md +++ b/en/Sorting Algorithms/Quick Sort.md @@ -66,35 +66,6 @@ Now 70 is at its correct place. All elements smaller than it. ``` -#### Code Implementation Links - -- [Assembly](https://github.com/TheAlgorithms/AArch64_Assembly/blob/main/sorters/quick_sort.s) -- [C](https://github.com/TheAlgorithms/C/blob/master/sorting/quick_sort.c) -- [C#](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Sorters/Comparison/QuickSorter.cs) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/sorting/quick_sort.cpp) -- [Dart](https://github.com/TheAlgorithms/Dart/blob/master/sort/quick_Sort.dart) -- [Elixir](https://github.com/TheAlgorithms/Elixir/blob/master/lib/sorting/quick_sort.ex) -- [F#](https://github.com/TheAlgorithms/F-Sharp/blob/main/Algorithms/Sort/Quick_Sort.fs) -- [Go](https://github.com/TheAlgorithms/Go/blob/master/sort/quicksort.go) -- [Haskell](https://github.com/TheAlgorithms/Haskell/blob/master/src/Sorts/QuickSort.hs) -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/QuickSort.java) -- [JavaScript Iterative](https://github.com/TheAlgorithms/JavaScript/blob/master/Sorts/QuickSort.js) -- [JavaScript Recursive](https://github.com/TheAlgorithms/JavaScript/blob/master/Sorts/QuickSortRecursive.js) -- [Julia](https://github.com/TheAlgorithms/Julia/blob/main/src/sorts/quick_sort.jl) -- [Kotlin](https://github.com/TheAlgorithms/Kotlin/blob/master/src/main/kotlin/sort/QuickSort.kt) -- [Lua](https://github.com/TheAlgorithms/Lua/blob/main/src/sorting/quicksort.lua) -- [Matlab](https://github.com/TheAlgorithms/MATLAB-Octave/blob/master/algorithms/sorting/quick_sort.m) -- [OCaml](https://github.com/TheAlgorithms/OCaml/blob/master/Sorts/quicksort.ml) -- [PHP](https://github.com/TheAlgorithms/PHP/blob/master/Sorting/QuickSort.php) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/quick_sort.py) -- [R](https://github.com/TheAlgorithms/R/blob/master/sorting_algorithms/quick_sort.r) -- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/sorting/quicksort.rb) -- [Rust](https://github.com/TheAlgorithms/Rust/blob/master/src/sorting/quick_sort.rs) -- [Scala](https://github.com/TheAlgorithms/Scala/blob/master/src/main/scala/Sort/QuickSort.scala) -- [Solidity](https://github.com/TheAlgorithms/Solidity/blob/main/src/Sorts/QuickSort.sol) -- [Swift](https://github.com/TheAlgorithms/Swift/blob/master/sorts/QuickSort.swift) -- [TypeScript](https://github.com/TheAlgorithms/TypeScript/blob/master/sorts/quick_sort.ts) - #### Video Explanation [A video explaining the Quick Sort Algorithm](https://www.youtube.com/watch?v=COk73cpQbFQ) diff --git a/en/Sorting Algorithms/Radix Sort.md b/en/Sorting Algorithms/Radix Sort.md index c8605f19..0e474d06 100644 --- a/en/Sorting Algorithms/Radix Sort.md +++ b/en/Sorting Algorithms/Radix Sort.md @@ -46,24 +46,6 @@ If we have `log2n` bits for every digit, the running time of Radix appears to be asymptotic notation are higher for Radix Sort and Quick-Sort uses hardware caches more effectively. Also, Radix sort uses counting sort as a subroutine and counting sort takes extra space to sort numbers. -#### Code Implementation Links - -- [Assembly](https://github.com/TheAlgorithms/AArch64_Assembly/blob/main/sorters/radix_sort.s) -- [C](https://github.com/TheAlgorithms/C/blob/master/sorting/radix_sort.c) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/sorting/radix_sort.cpp) -- [C#](https://github.com/TheAlgorithms/C-Sharp/tree/master/Algorithms/Sorters/Integer/RadixSorter.cs) -- [Dart](https://github.com/TheAlgorithms/Dart/blob/master/sort/radix_sort.dart) -- [Go](https://github.com/TheAlgorithms/Go/blob/master/sort/radixsort.go) -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/RadixSort.java) -- [JavaScript](https://github.com/TheAlgorithms/JavaScript/blob/master/Sorts/RadixSort.js) -- [Lua](https://github.com/TheAlgorithms/Lua/blob/main/src/sorting/radixsort.lua) -- [PHP](https://github.com/TheAlgorithms/PHP/blob/master/Sorting/RadixSort.php) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/radix_sort.py) -- [R](https://github.com/TheAlgorithms/R/blob/master/sorting_algorithms/radix_sort.r) -- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/sorting/radix_sort.rb) -- [Rust](https://github.com/TheAlgorithms/Rust/blob/master/src/sorting/radix_sort.rs) -- [Zig](https://github.com/TheAlgorithms/Zig/blob/main/sort/radixSort.zig) - #### Video Explanation Video reference: https://youtu.be/nu4gDuFabIM diff --git a/en/Sorting Algorithms/Recursive Versions/Recursive Bubble Sort.md b/en/Sorting Algorithms/Recursive Versions/Recursive Bubble Sort.md index ef0b1972..0c66b6b6 100644 --- a/en/Sorting Algorithms/Recursive Versions/Recursive Bubble Sort.md +++ b/en/Sorting Algorithms/Recursive Versions/Recursive Bubble Sort.md @@ -63,11 +63,6 @@ void bubbleSort(arr[], n) bubbleSort(arr, n-1) ``` -## Implementations - -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/BubbleSortRecursion.java) -- [C](https://github.com/TheAlgorithms/C/blob/master/sorting/bubble_sort_recursion.c) - ## Video Explanation [A video explaining iterative as well as recursive bubble sort](https://www.youtube.com/watch?v=gDMDVLBfCI0) diff --git a/en/Sorting Algorithms/Selection Sort.md b/en/Sorting Algorithms/Selection Sort.md index f9552f04..713b2d41 100644 --- a/en/Sorting Algorithms/Selection Sort.md +++ b/en/Sorting Algorithms/Selection Sort.md @@ -49,35 +49,6 @@ Indexes: 0 1 2 3 The array is now sorted. ``` -#### Code Implementation Links - -- [Assembly](https://github.com/TheAlgorithms/AArch64_Assembly/blob/main/sorters/selection_sort.s) -- [C iterative](https://github.com/TheAlgorithms/C/blob/master/sorting/selection_sort.c) -- [C recursive](https://github.com/TheAlgorithms/C/blob/master/sorting/selection_sort_recursive.c) -- [C#](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Sorters/Comparison/SelectionSorter.cs) -- [C++ Iterative](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/sorting/selection_sort_iterative.cpp) -- [C++ Recursive](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/sorting/selection_sort_recursive.cpp) -- [Dart](https://github.com/TheAlgorithms/Dart/blob/master/sort/select_Sort.dart) -- [Elixir](https://github.com/TheAlgorithms/Elixir/blob/master/lib/sorting/selection_sort.ex) -- [Elm](https://github.com/TheAlgorithms/Elm/blob/master/src/Sorting/SelectionSort.elm) -- [Go](https://github.com/TheAlgorithms/Go/blob/master/sort/selectionsort.go) -- [Haskell](https://github.com/TheAlgorithms/Haskell/blob/master/src/Sorts/SelectionSort.hs) -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/SelectionSort.java) -- [Javascript](https://github.com/TheAlgorithms/JavaScript/blob/master/Sorts/SelectionSort.js) -- [Julia](https://github.com/TheAlgorithms/Julia/blob/main/src/sorts/selection_sort.jl) -- [Kotlin](https://github.com/TheAlgorithms/Kotlin/blob/master/src/main/kotlin/sort/SelectionSort.kt) -- [Lua](https://github.com/TheAlgorithms/Lua/blob/main/src/sorting/selectionsort.lua) -- [Matlab](https://github.com/TheAlgorithms/MATLAB-Octave/blob/master/algorithms/sorting/select_sort.m) -- [PHP](https://github.com/TheAlgorithms/PHP/blob/master/Sorting/SelectionSort.php) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/selection_sort.py) -- [R](https://github.com/TheAlgorithms/R/blob/master/sorting_algorithms/selection_sort.r) -- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/Sorting/selection_sort.rb) -- [Rust](https://github.com/TheAlgorithms/Rust/blob/master/src/sorting/selection_sort.rs) -- [Scala](https://github.com/TheAlgorithms/Scala/blob/master/src/main/scala/Sort/SelectionSort.scala) -- [Solidity](https://github.com/TheAlgorithms/Solidity/blob/main/src/Sorts/SelectionSort.sol) -- [Swift](https://github.com/TheAlgorithms/Swift/blob/master/sorts/SelectionSort.swift) -- [TypeScript](https://github.com/TheAlgorithms/TypeScript/blob/master/sorts/selection_sort.ts) - #### Video Explanation [A video explaining the Selection Sort Algorithm](https://www.youtube.com/watch?v=f8hXR_Hvybo) diff --git a/en/Sorting Algorithms/Shell Sort.md b/en/Sorting Algorithms/Shell Sort.md index 06e59764..94b94060 100644 --- a/en/Sorting Algorithms/Shell Sort.md +++ b/en/Sorting Algorithms/Shell Sort.md @@ -54,23 +54,6 @@ Initial Gap: 4 12. Divide the gap by 2 and repeat until gap = 1 ``` -#### Code Implementation Links - -- [Assembly](https://github.com/TheAlgorithms/AArch64_Assembly/blob/main/sorters/shell_sort.s) -- [C](https://github.com/TheAlgorithms/C/blob/master/sorting/shell_sort.c) -- [C#](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Sorters/Comparison/ShellSorter.cs) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/sorting/shell_sort.cpp) -- [Dart](https://github.com/TheAlgorithms/Dart/blob/master/sort/shell_Sort.dart) -- [Go](https://github.com/TheAlgorithms/Go/blob/master/sort/shellsort.go) -- [Haskell](https://github.com/TheAlgorithms/Haskell/blob/master/src/Sorts/ShellSort.hs) -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/ShellSort.java) -- [JavaScript](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/shellSort.js) -- [Matlab](https://github.com/TheAlgorithms/MATLAB-Octave/blob/master/algorithms/sorting/shell_sort.m) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/shell_sort.py) -- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/Sorting/shell_sort.rb) -- [Rust](https://github.com/TheAlgorithms/Rust/blob/master/src/sorting/shell_sort.rs) - - #### Video Explanation [A video explaining the Shell Sort Algorithm](https://www.youtube.com/watch?v=H8NiFkGu2PY) diff --git a/es/Algoritmos de Ordenamiento/Ordenamiento Burbuja.md b/es/Algoritmos de Ordenamiento/Ordenamiento Burbuja.md index 7f473370..2e1b0be4 100644 --- a/es/Algoritmos de Ordenamiento/Ordenamiento Burbuja.md +++ b/es/Algoritmos de Ordenamiento/Ordenamiento Burbuja.md @@ -79,18 +79,6 @@ Indices: 0 1 2 3 Como no hay intercambios en los pasos de arriba, el arreglo ya se ha ordenado y nos podemos detener. ``` -#### Enlaces a implementaciones de código - -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/BubbleSort.java) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/Sorting/Bubble%20Sort.cpp) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/bubble_sort.py) -- [C-Sharp](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Sorters/Comparison/BubbleSorter.cs) -- [Go](https://github.com/TheAlgorithms/Go/blob/master/sort/bubblesort.go) -- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/Sorting/bubble_sort.rb) -- [C](https://github.com/TheAlgorithms/C/blob/master/sorting/BubbleSort.c) -- [Scala](https://github.com/TheAlgorithms/Scala/blob/master/src/main/scala/Sort/BubbleSort.scala) -- [Javascript](https://github.com/TheAlgorithms/JavaScript/blob/master/Sorts/BubbleSort.js) - #### Explicación en video [Un video explicando el Algoritmo de Ordenamiento Burbuja](https://www.youtube.com/watch?v=EQMGabLO_M0) diff --git a/es/Algoritmos de Ordenamiento/Ordenamiento Shell.md b/es/Algoritmos de Ordenamiento/Ordenamiento Shell.md index 7ae4c0d3..3c4aa1e7 100644 --- a/es/Algoritmos de Ordenamiento/Ordenamiento Shell.md +++ b/es/Algoritmos de Ordenamiento/Ordenamiento Shell.md @@ -55,17 +55,6 @@ Brecha inicial: 4 12. Divida la brecha por 2 y repita hasta la brecha = 1 ``` -#### Enlaces de implementación de código - -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/ShellSort.java) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/Sorting/Shell%20Sort.cpp) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/shell_sort.py) -- [C-Sharp](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Sorters/Comparison/ShellSorter.cs) -- [Ir](https://github.com/TheAlgorithms/Go/blob/master/sort/shellsort.go) -- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/Sorting/shell_sort.rb) -- [C](https://github.com/TheAlgorithms/C/blob/master/sorting/shellSort.c) -- [Javascript](https://github.com/TheAlgorithms/JavaScript/blob/master/Sorts/ShellSort.js) - #### Explicación de vídeo [Un vídeo explicando el algoritmo del ordenamiento de Shell](https://www.youtube.com/watch?v=H8NiFkGu2PY) diff --git "a/es/Algoritmos de Ordenamiento/Ordenamiento de fusi\303\263n.md" "b/es/Algoritmos de Ordenamiento/Ordenamiento de fusi\303\263n.md" index f0122536..02df6850 100644 --- "a/es/Algoritmos de Ordenamiento/Ordenamiento de fusi\303\263n.md" +++ "b/es/Algoritmos de Ordenamiento/Ordenamiento de fusi\303\263n.md" @@ -31,12 +31,6 @@ Vuelva a llamar a la función de ordenación de combinación de llamadas para es Ahora combine ambas mitades para obtener la matriz ordenada [0, 1, 2, 3, 5, 9] ``` -#### Enlaces de la implementación del código - -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/MergeSort.java) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/sorting/merge_sort.cpp) -- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/sorting/merge_sort.rb) - #### Explicación de vídeo [Un vídeo CS50 que explica el algoritmo de ordemaniento de fusión](https://www.youtube.com/watch?v=EeQ8pwjQxTM) diff --git "a/es/Algoritmos de Ordenamiento/Ordenamiento de inserci\303\263n.md" "b/es/Algoritmos de Ordenamiento/Ordenamiento de inserci\303\263n.md" index 013e7089..20a9d11d 100644 --- "a/es/Algoritmos de Ordenamiento/Ordenamiento de inserci\303\263n.md" +++ "b/es/Algoritmos de Ordenamiento/Ordenamiento de inserci\303\263n.md" @@ -47,16 +47,6 @@ y los elementos del 11 al 13 se moverán una posición por delante de su posici 5, 6, 11, 12, 13 -- matriz ordenada ``` -#### Enlaces de implementación del código - -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/InsertionSort.java) -- [C](https://github.com/TheAlgorithms/C/blob/master/sorting/insertion_sort.c) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/sorting/insertion_sort.cpp) -- [C#](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Sorters/Comparison/InsertionSorter.cs) -- [Scala](https://github.com/TheAlgorithms/Scala/blob/master/src/main/scala/Sort/InsertionSort.scala) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/insertion_sort.py) -- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/sorting/insertion_sort.rb) - #### Explicación de vídeo [Un vídeo CS50 que explica el algoritmo de Ordenamiento de inserción](https://www.youtube.com/watch?v=DFG-XuyPYUQ) diff --git "a/es/Algoritmos de Ordenamiento/Ordenamiento de mont\303\263n (heap sort).md" "b/es/Algoritmos de Ordenamiento/Ordenamiento de mont\303\263n (heap sort).md" index 5007099b..2732ff73 100644 --- "a/es/Algoritmos de Ordenamiento/Ordenamiento de mont\303\263n (heap sort).md" +++ "b/es/Algoritmos de Ordenamiento/Ordenamiento de mont\303\263n (heap sort).md" @@ -55,17 +55,6 @@ El procedimiento de amontonar se llama a sí mismo recursivamente para construir ![imagen del montón](https://upload.wikimedia.org/wikipedia/commons/1/1b/Sorting_heapsort_anim.gif "Heap sort") -#### Enlaces de implementación de código - -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/HeapSort.java) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/sorting/heap_sort.cpp) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/heap_sort.py) -- [Ir](https://github.com/TheAlgorithms/Go/blob/master/sort/heapsort.go) -- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/sorting/heap_sort.rb) -- [C-sharp](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Sorters/Comparison/HeapSorter.cs) -- [C](https://github.com/TheAlgorithms/C/blob/master/sorting/heap_sort.c) -- [Javascript](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/HeapSort.js) - #### Explicación de vídeo [Un vídeo explicando el algoritmo de ordenamiento de montón (heap sort)](https://www.youtube.com/watch?v=MtQL_ll5KhQ) diff --git "a/es/Algoritmos de Ordenamiento/Ordenamiento de selecci\303\263n.md" "b/es/Algoritmos de Ordenamiento/Ordenamiento de selecci\303\263n.md" index d2447869..8aaa49cb 100644 --- "a/es/Algoritmos de Ordenamiento/Ordenamiento de selecci\303\263n.md" +++ "b/es/Algoritmos de Ordenamiento/Ordenamiento de selecci\303\263n.md" @@ -49,17 +49,6 @@ arr[] = {80, 10, 40, 30} La matriz ahora está ordenada. ``` -#### Enlaces de implementación de código - -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/SelectionSort.java) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/Sorting/Selection%20Sort.cpp) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/selection_sort.py) -- [Ir](https://github.com/TheAlgorithms/Go/blob/master/sort/selectionsort.go) -- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/Sorting/selection_sort.rb) -- [C](https://github.com/TheAlgorithms/C/blob/master/sorting/SelectionSort.c) -- [Scala](https://github.com/TheAlgorithms/Scala/blob/master/src/main/scala/Sort/SelectionSort.scala) -- [Javascript](https://github.com/TheAlgorithms/JavaScript/blob/master/Sorts/SelectionSort.js) - #### Explicación de vídeo [Un vídeo explicando el algoritmo de Ordenamiento de selección](https://www.youtube.com/watch?v=f8hXR_Hvybo) diff --git "a/es/Algoritmos de Ordenamiento/Ordenamiento r\303\241pido.md" "b/es/Algoritmos de Ordenamiento/Ordenamiento r\303\241pido.md" index 837997b5..62c9dfd9 100644 --- "a/es/Algoritmos de Ordenamiento/Ordenamiento r\303\241pido.md" +++ "b/es/Algoritmos de Ordenamiento/Ordenamiento r\303\241pido.md" @@ -67,13 +67,6 @@ Ahora 70 está en su lugar correcto. Todos los elementos más pequeños que eso. ``` -#### Enlaces de implementación de código - -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/QuickSort.java) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/Sorting/Quick%20Sort.cpp) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/quick_sort.py) -- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/sorting/quicksort.rb) - #### Explicación de vídeo [Un vídeo explicando el algoritmo de ordenamiento rápido](https://www.youtube.com/watch?v=COk73cpQbFQ) diff --git "a/es/Algoritmos de b\303\272squeda/B\303\272squeda binaria.md" "b/es/Algoritmos de b\303\272squeda/B\303\272squeda binaria.md" index cb6ce132..089c1566 100644 --- "a/es/Algoritmos de b\303\272squeda/B\303\272squeda binaria.md" +++ "b/es/Algoritmos de b\303\272squeda/B\303\272squeda binaria.md" @@ -38,24 +38,6 @@ target = 9 Búsqueda binaria debe devolver -1 dado que 9 no está presente en la matriz ``` -#### Enlaces de implementación de código - -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/searches/BinarySearch.java) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/Search/Binary%20Search.cpp) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/searches/binary_search.py) -- [C-Sharp](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Search/BinarySearcher.cs) -- [C](https://github.com/TheAlgorithms/C/blob/master/searching/Binary_Search.c) -- [JavaScript](https://github.com/TheAlgorithms/Javascript/blob/master/Search/BinarySearch.js) -- [Haskell](https://github.com/TheAlgorithms/Haskell/blob/master/src/Misc/BinarySearch.hs) -- [F-Sharp](https://github.com/TheAlgorithms/F-Sharp/blob/main/Algorithms/Search/BinarySearch.fs) -- [Go](https://github.com/TheAlgorithms/Go/blob/master/search/binary.go) -- [Rust](https://github.com/TheAlgorithms/Rust/blob/master/src/searching/binary_search.rs) -- [Dart](https://github.com/TheAlgorithms/Dart/blob/master/search/binary_Search.dart) -- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/Searches/binary_search.rb) -- [PHP](https://github.com/TheAlgorithms/PHP/blob/master/searches/binary_search.php) -- [Scala](https://github.com/TheAlgorithms/Scala/blob/master/src/main/scala/Search/BinarySearch.scala) -- [MATLAB-Octave](https://github.com/TheAlgorithms/MATLAB-Octave/blob/master/algorithms/Searching/binary_search.m) - #### Explicación en vídeo de YouTube [Un vídeo CS50 explicando el algoritmo de búsqueda binaria](https://www.youtube.com/watch?v=5xlIPT1FRcA) diff --git "a/es/Algoritmos de b\303\272squeda/B\303\272squeda exponencial.md" "b/es/Algoritmos de b\303\272squeda/B\303\272squeda exponencial.md" index fbb2c658..3dad7976 100644 --- "a/es/Algoritmos de b\303\272squeda/B\303\272squeda exponencial.md" +++ "b/es/Algoritmos de b\303\272squeda/B\303\272squeda exponencial.md" @@ -53,8 +53,3 @@ Echemos un vistazo a esta comparación con un ejemplo menos teórico. Imagine qu - La búsqueda binaria comienza desde el centro de la matriz y llega a la 4ª posición después de muchas iteraciones - La búsqueda exponencial llega al 4º índice después de sólo 2 iteraciones - -#### Enlaces de implementación de código - -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/search/exponential_search.cpp) -- [JavaScript](https://github.com/TheAlgorithms/Javascript/blob/master/Search/ExponentialSearch.js) diff --git "a/es/Algoritmos de b\303\272squeda/B\303\272squeda lineal.md" "b/es/Algoritmos de b\303\272squeda/B\303\272squeda lineal.md" index 7d8f827d..1e86ff63 100644 --- "a/es/Algoritmos de b\303\272squeda/B\303\272squeda lineal.md" +++ "b/es/Algoritmos de b\303\272squeda/B\303\272squeda lineal.md" @@ -33,23 +33,6 @@ target = 6 La búsqueda lineal debe devolver -1 ya que 6 no está presente en la matriz ``` -#### Enlaces de implementación de código - -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/searches/LinearSearch.java) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/searches/linear_search.py) -- [JavaScript](https://github.com/TheAlgorithms/Javascript/blob/master/Search/LinearSearch.js) -- [C-Sharp](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Search/LinearSearcher.cs) -- [C](https://github.com/TheAlgorithms/C/blob/master/searching/linear_search.c) -- [Go](https://github.com/TheAlgorithms/Go/blob/master/search/linear.go) -- [Rust](https://github.com/TheAlgorithms/Rust/blob/master/src/searching/linear_search.rs) -- [Dart](https://github.com/TheAlgorithms/Dart/blob/master/search/linear_Search.dart) -- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/Searches/linear_search.rb) -- [PHP](https://github.com/TheAlgorithms/PHP/blob/master/searches/linear_search.php) -- [Kotlin](https://github.com/TheAlgorithms/Kotlin/blob/master/src/main/kotlin/search/LinearSearch.kt) -- [Scala](https://github.com/TheAlgorithms/Scala/blob/master/src/main/scala/Search/LinearSearch.scala) -- [OCaml](https://github.com/TheAlgorithms/OCaml/blob/master/searches/linear_search.ml) -- [MATLAB-Octave](https://github.com/TheAlgorithms/MATLAB-Octave/blob/master/algorithms/Searching/linear_search.m) - #### Explicación en YouTube [Un vídeo CS50 que explica el algoritmo de búsqueda lineal](https://www.youtube.com/watch?v=CX2CYIJLwfg) diff --git "a/es/Algoritmos de selecci\303\263n/Selecci\303\263n R\303\241pida.md" "b/es/Algoritmos de selecci\303\263n/Selecci\303\263n R\303\241pida.md" index 8d40f9fa..d15428ee 100644 --- "a/es/Algoritmos de selecci\303\263n/Selecci\303\263n R\303\241pida.md" +++ "b/es/Algoritmos de selecci\303\263n/Selecci\303\263n R\303\241pida.md" @@ -39,11 +39,6 @@ Digamos que k = 4 y tenemos que encontrar el cuarto elemento menor: 4. Como la posición de '7' es la cuarta, simplemente devolveremos el valor 7. ``` -## Enlaces de implementaciones de código - -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/selecting/quickSelect.cpp) -- [Python](https://programmerclick.com/article/92711720579/) - ## Enlaces de explicación en vídeo [Programación en C++, Ordenamiento por Selección](https://www.youtube.com/watch?v=HVa2_UtXkCI) diff --git a/es/Cifrado/Cifrado Cesar.md b/es/Cifrado/Cifrado Cesar.md index 5f62140a..daf35af8 100644 --- a/es/Cifrado/Cifrado Cesar.md +++ b/es/Cifrado/Cifrado Cesar.md @@ -38,9 +38,3 @@ Digamos que estamos enviando un mensaje secreto a un amigo. * La segunda letra es `h`. La letra a 6 letras de distancia es `n`. Nuestro mensaje ahora es `Zn` * Seguimos así hasta el final. Nuestro mensaje final es: `Znk Igkygx iovnkx oy g lat yahyzozazout iovnkx.` * El descifrado es de la misma manera, excepto que en lugar de ir a la derecha en el alfabeto, vamos hacia atrás. - -## Implementación - -* [Python](https://github.com/TheAlgorithms/Python/blob/master/ciphers/caesar_cipher.py) -* [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/ciphers/caesar_cipher.cpp) -* [Rust](https://github.com/TheAlgorithms/Rust/blob/master/src/ciphers/caesar.rs) diff --git "a/es/Estructuras de datos/Gr\303\241fico/Bellman Ford.md" "b/es/Estructuras de datos/Gr\303\241fico/Bellman Ford.md" index 1e32bba7..d3908206 100644 --- "a/es/Estructuras de datos/Gr\303\241fico/Bellman Ford.md" +++ "b/es/Estructuras de datos/Gr\303\241fico/Bellman Ford.md" @@ -86,13 +86,6 @@ D -2 A->B->E->D = -1 + 2 + -3 E 1 A->B->E = -1 + 2 ``` -#### Enlaces de implementación de código - -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/datastructures/graphs/BellmanFord.java) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/Dynamic%20Programming/Bellman-Ford.cpp) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/data_structures/graph/bellman_ford.py) -- [C](https://github.com/TheAlgorithms/C/blob/master/data_structures/graphs/Bellman-Ford.c) - #### Explicación de vídeo [Un video explicando el algoritmo Bellman Ford](https://www.youtube.com/watch?v=hxMWBBCpR6A) diff --git a/es/Estructuras de datos/Listas vinculadas/Doble lista vinculada.md b/es/Estructuras de datos/Listas vinculadas/Doble lista vinculada.md index e4492ee7..6cd9548a 100644 --- a/es/Estructuras de datos/Listas vinculadas/Doble lista vinculada.md +++ b/es/Estructuras de datos/Listas vinculadas/Doble lista vinculada.md @@ -102,14 +102,6 @@ class LinkedList { ![Seguimiento del algoritmo](https://www.geeksforgeeks.org/wp-content/uploads/gq/2014/03/DLL_add_middle1.png) -## Enlaces de implementación de código - -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/datastructures/lists/DoublyLinkedList.java) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/Data%20Structure/Doubly%20Linked%20List.cpp) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/data_structures/linked_list/doubly_linked_list.py) -- [Go](https://github.com/TheAlgorithms/Go/blob/master/data-structures/linked-list/double-linkedlist.go) -- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/data_structures/linked_lists/double_list.rb) - ## Explicación de vídeo [Un vídeo CS50 explicando la Estructura de Datos de la Lista Doblemente Vinculada](https://www.youtube.com/watch?v=FHMPswJDCvU) diff --git a/es/Estructuras de datos/Listas vinculadas/Lista singular vinculada.md b/es/Estructuras de datos/Listas vinculadas/Lista singular vinculada.md index bbf71447..8be7ca58 100644 --- a/es/Estructuras de datos/Listas vinculadas/Lista singular vinculada.md +++ b/es/Estructuras de datos/Listas vinculadas/Lista singular vinculada.md @@ -37,11 +37,6 @@ class LinkedList { } ``` -## Enlaces de implementación de código - -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/datastructures/lists/SinglyLinkedList.java) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/Data%20Structure/Linked%20List.cpp) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/data_structures/linked_list/singly_linked_list.py) ## Explicación de vídeo diff --git "a/es/Matematicas B\303\241sico/Numeros_Fibonacci.md" "b/es/Matematicas B\303\241sico/Numeros_Fibonacci.md" index 121518ee..23778eed 100644 --- "a/es/Matematicas B\303\241sico/Numeros_Fibonacci.md" +++ "b/es/Matematicas B\303\241sico/Numeros_Fibonacci.md" @@ -65,13 +65,6 @@ Calcular matriz^8 F(8)=21 -## Implementación - -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/math/fibonacci.cpp) -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/maths/FibonacciNumber.java) -- [Javascript](https://github.com/TheAlgorithms/Javascript/blob/80c2dc85d714f73783f133964d6acd9b5625ddd9/Maths/Fibonacci.js) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/maths/fibonacci.py) - ## Video en YouTube - [YouTube](https://www.youtube.com/watch?v=EEb6JP3NXBI) diff --git "a/es/Matematicas B\303\241sico/Promedio.md" "b/es/Matematicas B\303\241sico/Promedio.md" index ee2ca0ef..6735c765 100644 --- "a/es/Matematicas B\303\241sico/Promedio.md" +++ "b/es/Matematicas B\303\241sico/Promedio.md" @@ -58,10 +58,6 @@ Si consideramos correctamente dígitos significativos: `suma / recuento = 23` Devuelva el valor de 22. 857142 o `23`. -## Implementación - -- [Python](https://github.com/TheAlgorithms/Python/blob/master/maths/average_mean.py) - ## Video en YouTube - [Media en Khan Academy](https://www.khanacademy.org/math/ap-statistics/summarizing-quantitative-data-ap/measuring-center-quantitative/v/mean-media-and-mode) diff --git a/es/Procesamiento de imagenes/Detector de Harris.md b/es/Procesamiento de imagenes/Detector de Harris.md index 6046196b..b171a86f 100644 --- a/es/Procesamiento de imagenes/Detector de Harris.md +++ b/es/Procesamiento de imagenes/Detector de Harris.md @@ -13,10 +13,6 @@ Dada la imagen `$I$`, $ntimes n$ tamaño Gaussian Kernel `$G_{ntimes n}$`, 3. Calcule la función de respuesta `$R$`, donde `$R=AB-C^2-k(A+B)$` 4. Clasifique todos los puntos en `$R$`. -## Enlaces de implementación de código - -- [Python](https://github.com/TheAlgorithms/Python/blob/master/digital_image_processing/feature_detectors/harris.py) - ## Referencia C. Harris y M. Stephens, "A Combined Corner and Edge Detector", en *Procedings of the Alvey Vision Conference 1988*, Manchester, 1988, págs. 23.1-23.6. diff --git "a/es/Programaci\303\263n dinamica/Cambio de monedas.md" "b/es/Programaci\303\263n dinamica/Cambio de monedas.md" index 92bd4425..7e1228a4 100644 --- "a/es/Programaci\303\263n dinamica/Cambio de monedas.md" +++ "b/es/Programaci\303\263n dinamica/Cambio de monedas.md" @@ -58,15 +58,6 @@ Digamos que tenemos 3 tipos de monedas `[1,2,3]`, y queremos cambiarlas por 7 ce Así que la respuesta final es **8**. 8 maneras de hacer un cambio de 7 centavos usando todos los tipos de monedas. `{{1,1,1,1,1,1,1}, {1,1,1,1,1,2}, {1,1,1,2,2}, {1,2,2,2}, {1,1,1,1,3}, {1,3,3}, {2,2,3}, {1,1,2,3}}` -#### Enlace de implementación de código - -* [Python](https://github.com/TheAlgorithms/Python/blob/master/dynamic_programming/coin_change.py) -* [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/dynamic_programming/coin_change.cpp) -* [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/dynamicprogramming/CoinChange.java) -* [Dart](https://github.com/TheAlgorithms/Dart/blob/master/dynamic_programming/coin_change.dart) -* [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/dynamic_programming/coin_change.rb) -* [Scala](https://github.com/TheAlgorithms/Scala/blob/master/src/main/scala/DynamicProgramming/CoinChange.scala) - #### Vídeo de explicación [Formas únicas totales de hacer el cambio de espaldas a espaldas SWE](https://www.youtube.com/watch?v=DJ4a7cmjZY0) diff --git "a/es/Programaci\303\263n dinamica/Subsecuencia com\303\272n m\303\241s larga.md" "b/es/Programaci\303\263n dinamica/Subsecuencia com\303\272n m\303\241s larga.md" index 3b40b70f..d51e4f55 100644 --- "a/es/Programaci\303\263n dinamica/Subsecuencia com\303\272n m\303\241s larga.md" +++ "b/es/Programaci\303\263n dinamica/Subsecuencia com\303\272n m\303\241s larga.md" @@ -75,15 +75,6 @@ B 0 0 1 2 3 Así que la longitud de LCS es `dp[4] [4] = 3`. -#### Enlaces de implementación de código - -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/dynamicprogramming/LongestCommonSubsequence.java) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/dynamic_programming/longest_common_subsequence.py) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/Dynamic%20Programming/Longest%20Common%20Subsequence.cpp) -- [JavaScript](https://github.com/TheAlgorithms/Javascript/blob/master/Dynamic-Programming/LongestCommonSubsequence.js) -- [Go](https://github.com/TheAlgorithms/Go/blob/master/dynamic/longestcommonsubsequence.go) -- [Rust](https://github.com/TheAlgorithms/Rust/blob/master/src/dynamic_programming/longest_common_subsequence.rs) - #### Explicación en YouTube [Explicación en YouTube de Tushar Roy](https://youtu.be/NnD96abizww) diff --git a/fr/filtres_audio/filtre_butterworth.md b/fr/filtres_audio/filtre_butterworth.md index 85b5d226..b02fc4ba 100644 --- a/fr/filtres_audio/filtre_butterworth.md +++ b/fr/filtres_audio/filtre_butterworth.md @@ -27,7 +27,3 @@ $$\tag{avec $p_k=\omega_ce^{\frac{j(2k+n-1)\pi}{2n}}$}H(p) = \frac{G_0}{\prod^n_ * On commence par calculer les différents coefficients pour le filtre. * On applique ces coefficients à un filtre IIR. - -## Implementation - -* [Python](https://github.com/TheAlgorithms/Python/audio_filters/butterworth_filter.py) diff --git a/fr/math/Determinant.md b/fr/math/Determinant.md index 57feedd4..717bdb0c 100644 --- a/fr/math/Determinant.md +++ b/fr/math/Determinant.md @@ -34,7 +34,3 @@ Calculons le déterminant de la matrice $\begin{bmatrix}1&2&3\\4&5&6\\7&8&9\end{ ### Conclusion Le déterminant de $\begin{bmatrix}1&2&3\\4&5&6\\7&8&9\end{bmatrix}$ est $0$. - -## Implémentation - -* [Python](https://github.com/TheAlgorithms/Python/blob/master/linear_algebra/src/lib.py) diff --git a/fr/math/Suite_de_Fibonacci.md b/fr/math/Suite_de_Fibonacci.md index c52ad099..b6ce3d60 100644 --- a/fr/math/Suite_de_Fibonacci.md +++ b/fr/math/Suite_de_Fibonacci.md @@ -40,7 +40,3 @@ Dans notre exemple nous cherchons à calculer F(6), le 7ème terme de la suite. ### Conclusion On a donc $F(6) = 8$ - -## Implémentation - -* [Python](https://github.com/TheAlgorithms/Python/blob/master/maths/fibonacci.py) diff --git "a/fr/math/Suite_de_Fibonacci_r\303\251cursive.md" "b/fr/math/Suite_de_Fibonacci_r\303\251cursive.md" index e4549d03..12506035 100644 --- "a/fr/math/Suite_de_Fibonacci_r\303\251cursive.md" +++ "b/fr/math/Suite_de_Fibonacci_r\303\251cursive.md" @@ -41,7 +41,3 @@ Dans notre exemple nous cherchons à calculer $F(4)$, le 5ème terme de la suite ### Conclusion On a donc $F(4) = 3$ - -## Implémentation - -* [Python](https://github.com/TheAlgorithms/Python/blob/master/maths/fibonacci_sequence_recursion.py) diff --git a/fr/tri/Tri_fusion.md b/fr/tri/Tri_fusion.md index 359887be..b2b12e4c 100644 --- a/fr/tri/Tri_fusion.md +++ b/fr/tri/Tri_fusion.md @@ -46,11 +46,3 @@ De même, [3, 7] et [4, 6] seront fusionnés et donneront [3, 4, 6, 7]. Au niveau suivant de la pile, [1, 2, 5, 9] et [3, 4, 6, 7] seront fusionnés et nous obtiendrons le tableau trié final comme [1, 2, 3, 4, 5, 6, 7, 9]. ``` - -## Implémentation - -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/MergeSort.java) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/sorting/merge_sort.cpp) -- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/sorting/merge_sort.rb) -- [Go](https://github.com/TheAlgorithms/Go/blob/master/sort/mergesort.go) -- [JavaScript](https://github.com/TheAlgorithms/JavaScript/blob/master/Sorts/MergeSort.js) \ No newline at end of file diff --git a/fr/tri/Tri_par_insertion.md b/fr/tri/Tri_par_insertion.md index 7ac6b5aa..b03c5b02 100644 --- a/fr/tri/Tri_par_insertion.md +++ b/fr/tri/Tri_par_insertion.md @@ -44,10 +44,6 @@ Tri par insertion dans le : * [meilleur cas](../Exemples/tri/TriInsertionMeilleur.mp4) * [pire cas](../Exemples/tri/TriInsertionPire.mp4) -## Implémentation - -* [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/insertion_sort.py) - ## Pour aller plus loin * Dans le meilleur cas, nous n'effectuons qu'une unique comparaison. En effet, le terme comparé et plus grand que le terme juste avant, donc aucune modification n'est à effectuer. (ce qui correspond bien à $n$ opérations) diff --git a/fr/tri/Tri_par_selection.md b/fr/tri/Tri_par_selection.md index 3e7e016c..e7f04bb6 100644 --- a/fr/tri/Tri_par_selection.md +++ b/fr/tri/Tri_par_selection.md @@ -48,16 +48,3 @@ Indexes : 0 1 2 3 Le Tableau est maintenant trié. ``` - -## Implémentation - -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/SelectionSort.java) -- [C++ Iterative](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/sorting/selection_sort_iterative.cpp) -- [C++ Recursive](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/sorting/selection_sort_recursive.cpp) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/selection_sort.py) -- [Go](https://github.com/TheAlgorithms/Go/blob/master/sort/selectionsort.go) -- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/Sorting/selection_sort.rb) -- [C iterative](https://github.com/TheAlgorithms/C/blob/master/sorting/selection_sort.c) -- [C recursive](https://github.com/TheAlgorithms/C/blob/master/sorting/selection_sort_recursive.c) -- [Scala](https://github.com/TheAlgorithms/Scala/blob/master/src/main/scala/Sort/SelectionSort.scala) -- [TypeScript](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/selectionSort.js) \ No newline at end of file diff --git "a/fr/tri/Tri_\303\240_bulles.md" "b/fr/tri/Tri_\303\240_bulles.md" index 540f37f0..1d460c17 100644 --- "a/fr/tri/Tri_\303\240_bulles.md" +++ "b/fr/tri/Tri_\303\240_bulles.md" @@ -73,15 +73,3 @@ Indexes: 0 1 2 3 Puisqu'il n'y a pas de permutations dans les étapes précédentes, cela signifie que le tableau est trié et que nous pouvons nous arrêter ici. ``` - -## Implémentations - -- [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/bubble_sort.py) -- [C](https://github.com/TheAlgorithms/C/blob/master/sorting/bubble_sort.c) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/sorting/bubble_sort.cpp) -- [C-Sharp](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Sorters/Comparison/BubbleSorter.cs) -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/BubbleSort.java) -- [Go](https://github.com/TheAlgorithms/Go/blob/master/sorts/bubblesort.go) -- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/sorting/bubble_sort.rb) -- [Scala](https://github.com/TheAlgorithms/Scala/blob/master/src/main/scala/Sort/BubbleSort.scala) -- [JavaScript](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/BubbleSort.js) \ No newline at end of file diff --git "a/he/\327\236\327\252\327\236\327\230\327\231\327\247\327\224 \327\221\327\241\327\231\327\241\327\231\327\252/\327\236\327\241\327\244\327\250\327\231 \327\244\327\231\327\221\327\225\327\240\327\220\327\246'\327\231.md" "b/he/\327\236\327\252\327\236\327\230\327\231\327\247\327\224 \327\221\327\241\327\231\327\241\327\231\327\252/\327\236\327\241\327\244\327\250\327\231 \327\244\327\231\327\221\327\225\327\240\327\220\327\246'\327\231.md" index d2a3e9a9..52411f28 100644 --- "a/he/\327\236\327\252\327\236\327\230\327\231\327\247\327\224 \327\221\327\241\327\231\327\241\327\231\327\252/\327\236\327\241\327\244\327\250\327\231 \327\244\327\231\327\221\327\225\327\240\327\220\327\246'\327\231.md" +++ "b/he/\327\236\327\252\327\236\327\230\327\231\327\247\327\224 \327\221\327\241\327\231\327\241\327\231\327\252/\327\236\327\241\327\244\327\250\327\231 \327\244\327\231\327\221\327\225\327\240\327\220\327\246'\327\231.md" @@ -79,12 +79,6 @@ F(8)=21 ``` -

יישום סדרת פיבונאצ'י בשפות תכנות שונות

- -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/math/fibonacci.cpp) -- [Javascript](https://github.com/TheAlgorithms/Javascript/blob/80c2dc85d714f73783f133964d6acd9b5625ddd9/Maths/Fibonacci.js) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/maths/fibonacci.py) -

קישור לסרטון הסבר

- [Youtube](https://www.youtube.com/watch?v=EEb6JP3NXBI) diff --git "a/ko/\352\267\270\353\246\254\353\224\224 \354\225\214\352\263\240\353\246\254\354\246\230/\353\266\204\355\225\240 \352\260\200\353\212\245\355\225\234 \353\260\260\353\202\255 \353\254\270\354\240\234.md" "b/ko/\352\267\270\353\246\254\353\224\224 \354\225\214\352\263\240\353\246\254\354\246\230/\353\266\204\355\225\240 \352\260\200\353\212\245\355\225\234 \353\260\260\353\202\255 \353\254\270\354\240\234.md" index bbf4b9c6..02885f8c 100644 --- "a/ko/\352\267\270\353\246\254\353\224\224 \354\225\214\352\263\240\353\246\254\354\246\230/\353\266\204\355\225\240 \352\260\200\353\212\245\355\225\234 \353\260\260\353\202\255 \353\254\270\354\240\234.md" +++ "b/ko/\352\267\270\353\246\254\353\224\224 \354\225\214\352\263\240\353\246\254\354\246\230/\353\266\204\355\225\240 \352\260\200\353\212\245\355\225\234 \353\260\260\353\202\255 \353\254\270\354\240\234.md" @@ -33,12 +33,6 @@ B는 배낭의 용량보다 작기 때문에 첫 번째로 선택된다. 다음 이것이 가장 적합한 선택이다. 다른 항목을 조합하여 더 많은 돈을 버는 것은 불가능하다. ``` -#### 구현 - -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/greedy_algorithms/knapsack.cpp) -- [Python](https://github.com/TheAlgorithms/Python/tree/master/knapsack) -- [C-Sharp](https://github.com/TheAlgorithms/C-Sharp/tree/master/Algorithms/Knapsack) - #### 영상 URL [A CS50 video explaining the Greedy Algorithm](https://www.youtube.com/watch?v=Ou9OA0yQCYA) diff --git "a/ko/\352\270\260\354\264\210 \354\210\230\355\225\231/\354\265\234\353\214\223\352\260\222.md" "b/ko/\352\270\260\354\264\210 \354\210\230\355\225\231/\354\265\234\353\214\223\352\260\222.md" index 6b3596cc..2eb04336 100644 --- "a/ko/\352\270\260\354\264\210 \354\210\230\355\225\231/\354\265\234\353\214\223\352\260\222.md" +++ "b/ko/\352\270\260\354\264\210 \354\210\230\355\225\231/\354\265\234\353\214\223\352\260\222.md" @@ -85,10 +85,6 @@ `70`을 반환한다. -## 구현 - -- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/maths/find_max.rb) - ## 영상 URL - [GeeksforGeeks](https://youtu.be/En68ipRaFOU) diff --git "a/ko/\352\270\260\354\264\210 \354\210\230\355\225\231/\355\217\211\352\267\240\352\260\222.md" "b/ko/\352\270\260\354\264\210 \354\210\230\355\225\231/\355\217\211\352\267\240\352\260\222.md" index 7212ef98..e78aa369 100644 --- "a/ko/\352\270\260\354\264\210 \354\210\230\355\225\231/\355\217\211\352\267\240\352\260\222.md" +++ "b/ko/\352\270\260\354\264\210 \354\210\230\355\225\231/\355\217\211\352\267\240\352\260\222.md" @@ -55,11 +55,6 @@ count = 7 22.857142나 23을 반환한다. -## 구현 - -- [Python](https://github.com/TheAlgorithms/Python/blob/master/maths/average_mean.py) -- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/maths/average_mean.rb) - ## 영상 URL - [Khan Academy](https://www.khanacademy.org/math/ap-statistics/summarizing-quantitative-data-ap/measuring-center-quantitative/v/mean-median-and-mode) diff --git "a/ko/\352\270\260\354\264\210 \354\210\230\355\225\231/\355\224\274\353\263\264\353\202\230\354\271\230 \354\210\230.md" "b/ko/\352\270\260\354\264\210 \354\210\230\355\225\231/\355\224\274\353\263\264\353\202\230\354\271\230 \354\210\230.md" index a2d9338c..b1731808 100644 --- "a/ko/\352\270\260\354\264\210 \354\210\230\355\225\231/\355\224\274\353\263\264\353\202\230\354\271\230 \354\210\230.md" +++ "b/ko/\352\270\260\354\264\210 \354\210\230\355\225\231/\355\224\274\353\263\264\353\202\230\354\271\230 \354\210\230.md" @@ -65,13 +65,6 @@ F(8) = 21 ``` -## 구현 - -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/math/fibonacci.cpp) -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/maths/FibonacciNumber.java) -- [Javascript](https://github.com/TheAlgorithms/Javascript/blob/80c2dc85d714f73783f133964d6acd9b5625ddd9/Maths/Fibonacci.js) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/maths/fibonacci.py) - ## 영상 URL - [Gaurav Sen](https://www.youtube.com/watch?v=EEb6JP3NXBI) diff --git "a/ko/\354\204\240\355\203\235 \354\225\214\352\263\240\353\246\254\354\246\230/\355\200\265 \354\205\200\353\240\211\355\212\270.md" "b/ko/\354\204\240\355\203\235 \354\225\214\352\263\240\353\246\254\354\246\230/\355\200\265 \354\205\200\353\240\211\355\212\270.md" index 7a6bdfb6..94779760 100644 --- "a/ko/\354\204\240\355\203\235 \354\225\214\352\263\240\353\246\254\354\246\230/\355\200\265 \354\205\200\353\240\211\355\212\270.md" +++ "b/ko/\354\204\240\355\203\235 \354\225\214\352\263\240\353\246\254\354\246\230/\355\200\265 \354\205\200\353\240\211\355\212\270.md" @@ -40,13 +40,6 @@ k = 4, 즉 4번째로 작은 원소를 찾고 싶다고 하자. 4. 7의 위치가 4번째이므로, 우리가 찾는 원소이다. 7을 반환한다. ``` -### 구현 - -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/searches/QuickSelect.java) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/searches/quick_select.py) -- [Go](https://github.com/TheAlgorithms/Go/blob/master/search/selectk.go) -- [JavaScript](https://github.com/TheAlgorithms/JavaScript/blob/master/Data-Structures/Array/QuickSelect.js) - ### 관련 영상 [여러가지 시간 복잡도에 따라 K번째로 작은/큰 원소를 찾는 방법을 설명하는 영상](https://youtu.be/hGK_5n81drs) diff --git "a/ko/\354\236\220\353\243\214\352\265\254\354\241\260/\352\267\270\353\236\230\355\224\204/\353\262\250\353\250\274-\355\217\254\353\223\234 \354\225\214\352\263\240\353\246\254\354\246\230.md" "b/ko/\354\236\220\353\243\214\352\265\254\354\241\260/\352\267\270\353\236\230\355\224\204/\353\262\250\353\250\274-\355\217\254\353\223\234 \354\225\214\352\263\240\353\246\254\354\246\230.md" index a632daec..037c182b 100644 --- "a/ko/\354\236\220\353\243\214\352\265\254\354\241\260/\352\267\270\353\236\230\355\224\204/\353\262\250\353\250\274-\355\217\254\353\223\234 \354\225\214\352\263\240\353\246\254\354\246\230.md" +++ "b/ko/\354\236\220\353\243\214\352\265\254\354\241\260/\352\267\270\353\236\230\355\224\204/\353\262\250\353\250\274-\355\217\254\353\223\234 \354\225\214\352\263\240\353\246\254\354\246\230.md" @@ -94,13 +94,6 @@ E 1 (A->B->E = -1 + 2) ``` -## 구현 - -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/datastructures/graphs/BellmanFord.java) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/Dynamic%20Programming/Bellman-Ford.cpp) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/data_structures/graph/bellman_ford.py) -- [C](https://github.com/TheAlgorithms/C/blob/master/data_structures/graphs/Bellman-Ford.c) - ## 영상 URL - [Yusuf Shakeel (C)](https://www.youtube.com/watch?v=hxMWBBCpR6A) diff --git "a/ko/\354\236\220\353\243\214\352\265\254\354\241\260/\354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270/\353\213\250\354\235\274 \354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270.md" "b/ko/\354\236\220\353\243\214\352\265\254\354\241\260/\354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270/\353\213\250\354\235\274 \354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270.md" index e2402b33..b4057b57 100644 --- "a/ko/\354\236\220\353\243\214\352\265\254\354\241\260/\354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270/\353\213\250\354\235\274 \354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270.md" +++ "b/ko/\354\236\220\353\243\214\352\265\254\354\241\260/\354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270/\353\213\250\354\235\274 \354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270.md" @@ -38,12 +38,6 @@ class LinkedList { } ``` -## 구현 - -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/datastructures/lists/SinglyLinkedList.java) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/Data%20Structure/Linked%20List.cpp) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/data_structures/linked_list/singly_linked_list.py) - ## 영상 URL - [CS50](https://www.youtube.com/watch?v=5nsKtQuT6E8) diff --git "a/ko/\354\236\220\353\243\214\352\265\254\354\241\260/\354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270/\354\233\220\355\230\225 \354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270.md" "b/ko/\354\236\220\353\243\214\352\265\254\354\241\260/\354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270/\354\233\220\355\230\225 \354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270.md" index b37ad45f..d2c798d6 100644 --- "a/ko/\354\236\220\353\243\214\352\265\254\354\241\260/\354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270/\354\233\220\355\230\225 \354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270.md" +++ "b/ko/\354\236\220\353\243\214\352\265\254\354\241\260/\354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270/\354\233\220\355\230\225 \354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270.md" @@ -64,12 +64,6 @@ public void insertHead(int data) } ``` -## 구현 - -- [JavaScript](https://github.com/TheAlgorithms/JavaScript/blob/master/Data-Structures/Linked-List/SinglyCircularLinkedList.js) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/data_structures/cll/cll.cpp) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/data_structures/linked_list/circular_linked_list.py) - ## 영상 URL [유투브 영상](https://youtu.be/HMkdlu5sP4A) diff --git "a/ko/\354\236\220\353\243\214\352\265\254\354\241\260/\354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270/\354\235\264\354\244\221 \354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270.md" "b/ko/\354\236\220\353\243\214\352\265\254\354\241\260/\354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270/\354\235\264\354\244\221 \354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270.md" index 2fb6a7f8..d91fda96 100644 --- "a/ko/\354\236\220\353\243\214\352\265\254\354\241\260/\354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270/\354\235\264\354\244\221 \354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270.md" +++ "b/ko/\354\236\220\353\243\214\352\265\254\354\241\260/\354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270/\354\235\264\354\244\221 \354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270.md" @@ -100,14 +100,6 @@ class LinkedList { } ``` -## 구현 - -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/datastructures/lists/DoublyLinkedList.java) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/Data%20Structure/Doubly%20Linked%20List.cpp) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/data_structures/linked_list/doubly_linked_list.py) -- [Go](https://github.com/TheAlgorithms/Go/blob/master/data-structures/linked-list/double-linkedlist.go) -- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/data_structures/linked_lists/double_list.rb) - ## 영상 URL - [CS50](https://www.youtube.com/watch?v=FHMPswJDCvU) diff --git "a/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\352\263\204\354\210\230 \354\240\225\353\240\254.md" "b/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\352\263\204\354\210\230 \354\240\225\353\240\254.md" index a388f7e0..180ef9db 100644 --- "a/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\352\263\204\354\210\230 \354\240\225\353\240\254.md" +++ "b/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\352\263\204\354\210\230 \354\240\225\353\240\254.md" @@ -41,15 +41,6 @@ countingSort(array, size) decrease count of each element restored by 1 ``` -## 구현 - -- [C](https://github.com/TheAlgorithms/C/blob/master/sorting/counting_sort.c) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/sorting/counting_sort.cpp) -- [JavaScript](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/CountingSort.js) -- [Matlab](https://github.com/TheAlgorithms/MATLAB-Octave/blob/master/algorithms/sorting/counting_sort.m) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/counting_sort.py) -- [Rust](https://github.com/TheAlgorithms/Rust/blob/master/src/sorting/counting_sort.rs) - ## 영상 URL - [GeeksforGeeks](https://www.youtube.com/watch?v=7zuGmKfUt7s) diff --git "a/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\353\262\204\353\270\224 \354\240\225\353\240\254 (\354\236\254\352\267\200 \353\262\204\354\240\204).md" "b/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\353\262\204\353\270\224 \354\240\225\353\240\254 (\354\236\254\352\267\200 \353\262\204\354\240\204).md" index 2ef2515e..c4bf95dd 100644 --- "a/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\353\262\204\353\270\224 \354\240\225\353\240\254 (\354\236\254\352\267\200 \353\262\204\354\240\204).md" +++ "b/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\353\262\204\353\270\224 \354\240\225\353\240\254 (\354\236\254\352\267\200 \353\262\204\354\240\204).md" @@ -69,11 +69,6 @@ void bubbleSort(arr[], n) bubbleSort(arr, n-1) ``` -## 구현 - -- [Java](https://github.com/TheAlgorithms/Java/blob/master/Sorts/BubbleSortRecursion.java) -- [C](https://github.com/TheAlgorithms/C/blob/master/sorting/bubble_sort_recursion.c) - ## 영상 URL - [Programming Tutorials](https://www.youtube.com/watch?v=gDMDVLBfCI0) diff --git "a/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\353\262\204\353\270\224 \354\240\225\353\240\254.md" "b/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\353\262\204\353\270\224 \354\240\225\353\240\254.md" index 776d1982..577e27a3 100644 --- "a/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\353\262\204\353\270\224 \354\240\225\353\240\254.md" +++ "b/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\353\262\204\353\270\224 \354\240\225\353\240\254.md" @@ -79,18 +79,6 @@ $O(1)$ 최악의 경우 위 단계에서 교환이 없기 때문에 배열이 정렬되었음을 의미하고, 여기서 멈출 수 있다. ``` -## 구현 - -- [자바](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/BubbleSort.java) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/sorting/bubble_sort.cpp) -- [파이썬](https://github.com/TheAlgorithms/Python/blob/master/sorts/bubble_sort.py) -- [C#](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Sorters/Comparison/BubbleSorter.cs) -- [고](https://github.com/TheAlgorithms/Go/blob/master/sorts/bubblesort.go) -- [루비](https://github.com/TheAlgorithms/Ruby/blob/master/sorting/bubble_sort.rb) -- [C](https://github.com/TheAlgorithms/C/blob/master/sorting/bubble_sort.c) -- [스칼라](https://github.com/TheAlgorithms/Scala/blob/master/src/main/scala/Sort/BubbleSort.scala) -- [자바스크립트](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/BubbleSort.js) - ## 영상 URL - [버블정렬 알고리즘에 대한 영상 설명](https://www.youtube.com/watch?v=Jdtq5uKz-w4) diff --git "a/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\353\263\221\355\225\251 \354\240\225\353\240\254.md" "b/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\353\263\221\355\225\251 \354\240\225\353\240\254.md" index fd19920c..14bf3b52 100644 --- "a/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\353\263\221\355\225\251 \354\240\225\353\240\254.md" +++ "b/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\353\263\221\355\225\251 \354\240\225\353\240\254.md" @@ -31,12 +31,6 @@ Recursively call merge sort function for both these halves which will provide so Now merge both these halves to get the sorted array [0, 1, 2, 3, 5, 9] ``` -## 구현 - -- [Java](https://github.com/TheAlgorithms/Java/blob/master/Sorts/MergeSort.java) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/sorting/merge_sort.cpp) -- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/sorting/merge_sort.rb) - ## 영상 URL - [CS50](https://www.youtube.com/watch?v=EeQ8pwjQxTM) diff --git "a/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\354\202\275\354\236\205 \354\240\225\353\240\254.md" "b/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\354\202\275\354\236\205 \354\240\225\353\240\254.md" index 0d66ae1a..74a9f5b2 100644 --- "a/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\354\202\275\354\236\205 \354\240\225\353\240\254.md" +++ "b/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\354\202\275\354\236\205 \354\240\225\353\240\254.md" @@ -51,16 +51,6 @@ and elements from 11 to 13 will move one position ahead of their current positio 5, 6, 11, 12, 13 -- sorted array ``` -## 구현 - -- [Java](https://github.com/TheAlgorithms/Java/blob/master/Sorts/InsertionSort.java) -- [C](https://github.com/TheAlgorithms/C/blob/master/sorting/insertion_sort.c) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/sorting/insertion_sort.cpp) -- [C#](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Sorters/Comparison/InsertionSorter.cs) -- [Scala](https://github.com/TheAlgorithms/Scala/blob/master/src/main/scala/Sort/InsertionSort.scala) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/insertion_sort.py) -- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/sorting/insertion_sort.rb) - ## 영상 URL - [CS50](https://www.youtube.com/watch?v=DFG-XuyPYUQ) diff --git "a/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\354\204\240\355\203\235 \354\240\225\353\240\254.md" "b/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\354\204\240\355\203\235 \354\240\225\353\240\254.md" index 1c7eccde..28040c6d 100644 --- "a/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\354\204\240\355\203\235 \354\240\225\353\240\254.md" +++ "b/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\354\204\240\355\203\235 \354\240\225\353\240\254.md" @@ -47,17 +47,6 @@ Indexes: 0 1 2 3 The array is now sorted. ``` -## 구현 - -- [Java](https://github.com/TheAlgorithms/Java/blob/master/Sorts/SelectionSort.java) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/Sorting/Selection%20Sort.cpp) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/selection_sort.py) -- [Go](https://github.com/TheAlgorithms/Go/blob/master/sort/selectionsort.go) -- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/Sorting/selection_sort.rb) -- [C](https://github.com/TheAlgorithms/C/blob/master/sorting/SelectionSort.c) -- [Scala](https://github.com/TheAlgorithms/Scala/blob/master/src/main/scala/Sort/SelectionSort.scala) -- [JavaScript](https://github.com/TheAlgorithms/JavaScript/blob/master/Sorts/SelectionSort.js) - ## 영상 URL - [CS50](https://www.youtube.com/watch?v=f8hXR_Hvybo) diff --git "a/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\354\205\270 \354\240\225\353\240\254.md" "b/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\354\205\270 \354\240\225\353\240\254.md" index ec26cc5f..f13404cc 100644 --- "a/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\354\205\270 \354\240\225\353\240\254.md" +++ "b/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\354\205\270 \354\240\225\353\240\254.md" @@ -52,17 +52,6 @@ Initial Gap: 4 12. Divide the gap by 2 and repeat until gap = 1 ``` -## 구현 - -- [Java](https://github.com/TheAlgorithms/Java/blob/master/Sorts/ShellSort.java) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/Sorting/Shell%20Sort.cpp) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/shell_sort.py) -- [C#](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Sorters/Comparison/ShellSorter.cs) -- [Go](https://github.com/TheAlgorithms/Go/blob/master/sort/shellsort.go) -- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/Sorting/shell_sort.rb) -- [C](https://github.com/TheAlgorithms/C/blob/master/sorting/shellSort.c) -- [JavaScript](https://github.com/TheAlgorithms/JavaScript/blob/master/Sorts/ShellSort.js) - ## 영상 URL - [Computer Education for All](https://www.youtube.com/watch?v=H8NiFkGu2PY) diff --git "a/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\355\200\265 \354\240\225\353\240\254.md" "b/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\355\200\265 \354\240\225\353\240\254.md" index e9ff369b..9acb9401 100644 --- "a/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\355\200\265 \354\240\225\353\240\254.md" +++ "b/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\355\200\265 \354\240\225\353\240\254.md" @@ -67,13 +67,6 @@ Now 70 is at its correct place. All elements smaller than it. ``` -## 구현 - -- [Java](https://github.com/TheAlgorithms/Java/blob/master/Sorts/QuickSort.java) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/Sorting/Quick%20Sort.cpp) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/quick_sort.py) -- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/sorting/quicksort.rb) - ## 영상 URL - [mycodeschool](https://www.youtube.com/watch?v=COk73cpQbFQ) diff --git "a/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\355\236\231 \354\240\225\353\240\254.md" "b/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\355\236\231 \354\240\225\353\240\254.md" index 446f16e4..68bc3fc3 100644 --- "a/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\355\236\231 \354\240\225\353\240\254.md" +++ "b/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\355\236\231 \354\240\225\353\240\254.md" @@ -53,16 +53,6 @@ $O(1)$ 최악의 경우 ![힙 이미지](https://upload.wikimedia.org/wikipedia/commons/1/1b/Sorting_heapsort_anim.gif) -## 구현 - -- [자바](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/HeapSort.java) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/sorting/heap_sort.cpp) -- [파이썬](https://github.com/TheAlgorithms/Python/blob/master/sorts/heap_sort.py) -- [루비](https://github.com/TheAlgorithms/Ruby/blob/master/sorting/heap_sort.rb) -- [C-Sharp](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Sorters/Comparison/HeapSorter.cs) -- [C](https://github.com/TheAlgorithms/C/blob/master/sorting/heap_sort.c) -- [자바스크립트](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/HeapSort.js) - ## 영상 URL [힙 정렬 알고리즘에 대한 영상 설명](https://www.youtube.com/watch?v=MtQL_ll5KhQ) diff --git "a/ko/\355\203\220\354\203\211 \354\225\214\352\263\240\353\246\254\354\246\230/\354\204\240\355\230\225 \355\203\220\354\203\211.md" "b/ko/\355\203\220\354\203\211 \354\225\214\352\263\240\353\246\254\354\246\230/\354\204\240\355\230\225 \355\203\220\354\203\211.md" index 51c160b5..d024fdeb 100644 --- "a/ko/\355\203\220\354\203\211 \354\225\214\352\263\240\353\246\254\354\246\230/\354\204\240\355\230\225 \355\203\220\354\203\211.md" +++ "b/ko/\355\203\220\354\203\211 \354\225\214\352\263\240\353\246\254\354\246\230/\354\204\240\355\230\225 \355\203\220\354\203\211.md" @@ -44,11 +44,6 @@ target = 6 마지막 원소가 목표와 같지 않으므로 6이 배열에 들어있지 않다고 판단하여 -1을 반환한다. ``` -## 구현 - -- [Java](https://github.com/TheAlgorithms/Java/blob/master/Searches/LinearSearch.java) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/searches/linear_search.py) - ## 영상 URL - [CS50](https://www.youtube.com/watch?v=CX2CYIJLwfg) diff --git "a/ko/\355\203\220\354\203\211 \354\225\214\352\263\240\353\246\254\354\246\230/\354\235\264\354\247\204 \355\203\220\354\203\211.md" "b/ko/\355\203\220\354\203\211 \354\225\214\352\263\240\353\246\254\354\246\230/\354\235\264\354\247\204 \355\203\220\354\203\211.md" index 59f7dc29..9e378db2 100644 --- "a/ko/\355\203\220\354\203\211 \354\225\214\352\263\240\353\246\254\354\246\230/\354\235\264\354\247\204 \355\203\220\354\203\211.md" +++ "b/ko/\355\203\220\354\203\211 \354\225\214\352\263\240\353\246\254\354\246\230/\354\235\264\354\247\204 \355\203\220\354\203\211.md" @@ -53,14 +53,6 @@ arr = [7] 유일한 원소가 목표와 같지 않으므로 9가 배열에 들어있지 않다고 판단하여 -1을 반환한다. ``` -## 구현 - -- [자바](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/searches/BinarySearch.java) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/Search/Binary%20Search.cpp) -- [파이썬](https://github.com/TheAlgorithms/Python/blob/master/searches/binary_search.py) -- [C#](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Search/BinarySearcher.cs) -- [C](https://github.com/TheAlgorithms/C/blob/master/searching/Binary_Search.c) - ## 영상 URL - [CS50: 이진 탐색](https://www.youtube.com/watch?v=5xlIPT1FRcA) diff --git "a/ko/\355\203\220\354\203\211 \354\225\214\352\263\240\353\246\254\354\246\230/\354\247\200\354\210\230 \355\203\220\354\203\211.md" "b/ko/\355\203\220\354\203\211 \354\225\214\352\263\240\353\246\254\354\246\230/\354\247\200\354\210\230 \355\203\220\354\203\211.md" index 779d51ea..ff42267a 100644 --- "a/ko/\355\203\220\354\203\211 \354\225\214\352\263\240\353\246\254\354\246\230/\354\247\200\354\210\230 \355\203\220\354\203\211.md" +++ "b/ko/\355\203\220\354\203\211 \354\225\214\352\263\240\353\246\254\354\246\230/\354\247\200\354\210\230 \355\203\220\354\203\211.md" @@ -55,8 +55,3 @@ target = 998 - 이진 탐색은 배열의 중간부터 시작하여 많은 반복문을 지나야 4번째 원소에 도착한다. - 지수 탐색은 2번 만에 4번째 원소에 도착한다. - -## 구현 - -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/search/exponential_search.cpp) -- [JavaScript](https://github.com/TheAlgorithms/Javascript/blob/master/Search/ExponentialSearch.js) diff --git "a/ko/\355\203\220\354\203\211 \354\225\214\352\263\240\353\246\254\354\246\230/\355\224\214\353\241\234\354\235\264\353\223\234 \354\210\234\355\231\230 \355\203\220\354\203\211 \354\225\214\352\263\240\353\246\254\354\246\230.md" "b/ko/\355\203\220\354\203\211 \354\225\214\352\263\240\353\246\254\354\246\230/\355\224\214\353\241\234\354\235\264\353\223\234 \354\210\234\355\231\230 \355\203\220\354\203\211 \354\225\214\352\263\240\353\246\254\354\246\230.md" index 06c2738a..70162f38 100644 --- "a/ko/\355\203\220\354\203\211 \354\225\214\352\263\240\353\246\254\354\246\230/\355\224\214\353\241\234\354\235\264\353\223\234 \354\210\234\355\231\230 \355\203\220\354\203\211 \354\225\214\352\263\240\353\246\254\354\246\230.md" +++ "b/ko/\355\203\220\354\203\211 \354\225\214\352\263\240\353\246\254\354\246\230/\355\224\214\353\241\234\354\235\264\353\223\234 \354\210\234\355\231\230 \355\203\220\354\203\211 \354\225\214\352\263\240\353\246\254\354\246\230.md" @@ -29,11 +29,6 @@ arr = [3, 4, 8, 5, 9, 1, 2, 6, 7, 4] return value = 4 ``` -## 구현 - -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/search/floyd_cycle_detection_algo.cpp) -- [C](https://github.com/TheAlgorithms/C/blob/master/searching/floyd_cycle_detection_algorithm.c) - ## 영상 URL - [플로이드 순환 탐색 알고리즘 유튜브 영상](https://www.youtube.com/watch?v=B6smdk7pZ14) diff --git a/pt-br/Algoritmos de Busca/Busca Binaria.md b/pt-br/Algoritmos de Busca/Busca Binaria.md index 5c08ec26..cd350166 100644 --- a/pt-br/Algoritmos de Busca/Busca Binaria.md +++ b/pt-br/Algoritmos de Busca/Busca Binaria.md @@ -40,14 +40,6 @@ alvo = 9 # A pesquisa binária deve retornar -1, pois 9 não está presente na matriz ``` -#### Links de implementação de código - -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/searches/BinarySearch.java) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/Search/Binary%20Search.cpp) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/searches/binary_search.py) -- [C-Sharp](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Search/BinarySearcher.cs) -- [C](https://github.com/TheAlgorithms/C/blob/master/searching/Binary_Search.c) - #### Explicação em vídeo [Um vídeo CS50 explicando o algoritmo de pesquisa binária](https://www.youtube.com/watch?v=5xlIPT1FRcA) diff --git a/pt-br/Algoritmos de Busca/Busca Linear.md b/pt-br/Algoritmos de Busca/Busca Linear.md index a918982d..5d6690e0 100644 --- a/pt-br/Algoritmos de Busca/Busca Linear.md +++ b/pt-br/Algoritmos de Busca/Busca Linear.md @@ -33,11 +33,6 @@ alvo = 6 # A pesquisa linear deve retornar -1, pois 6 não está presente na matriz ``` -#### Links de implementação de código - -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/searches/LinearSearch.java) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/searches/linear_search.py) - #### Explicação em vídeo [Um vídeo CS50 explicando o algoritmo de pesquisa linear](https://www.youtube.com/watch?v=CX2CYIJLwfg) diff --git "a/pt-br/Algoritmos de Ordena\303\247\303\243o/Bubble Sort.md" "b/pt-br/Algoritmos de Ordena\303\247\303\243o/Bubble Sort.md" index 203a71b1..d4599dd9 100644 --- "a/pt-br/Algoritmos de Ordena\303\247\303\243o/Bubble Sort.md" +++ "b/pt-br/Algoritmos de Ordena\303\247\303\243o/Bubble Sort.md" @@ -79,18 +79,6 @@ arr[] = {10, 30, 40, 80} Como não há trocas nas etapas acima, isso significa que a matriz está classificada e podemos parar por aqui. ``` -#### Links de implementação de código - -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/BubbleSort.java) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/sorting/bubble_sort.cpp) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/bubble_sort.py) -- [C-Sharp](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Sorters/Comparison/BubbleSorter.cs) -- [Go](https://github.com/TheAlgorithms/Go/blob/master/sort/bubblesort.go) -- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/sorting/bubble_sort.rb) -- [C](https://github.com/TheAlgorithms/C/blob/master/sorting/bubble_sort.c) -- [Scala](https://github.com/TheAlgorithms/Scala/blob/master/src/main/scala/Sort/BubbleSort.scala) -- [Javascript](https://github.com/TheAlgorithms/JavaScript/blob/master/Sorts/BubbleSort.js) - #### Explicação em vídeo [Um vídeo explicando o algoritmo de classificação por bolha](https://www.youtube.com/watch?v=Jdtq5uKz-w4) diff --git "a/pt-br/Algoritmos de Ordena\303\247\303\243o/Heap Sort.md" "b/pt-br/Algoritmos de Ordena\303\247\303\243o/Heap Sort.md" index 2711232b..461cb947 100644 --- "a/pt-br/Algoritmos de Ordena\303\247\303\243o/Heap Sort.md" +++ "b/pt-br/Algoritmos de Ordena\303\247\303\243o/Heap Sort.md" @@ -55,17 +55,6 @@ O procedimento heapify chama a si mesmo recursivamente para construir heap de ci ![heap-image](https://upload.wikimedia.org/wikipedia/commons/1/1b/Sorting_heapsort_anim.gif "Heap Sort") -#### Links de implementação de código - -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/HeapSort.java) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/sorting/heap_sort.cpp) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/heap_sort.py) -- [Go](https://github.com/TheAlgorithms/Go/blob/master/sort/heapsort.go) -- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/sorting/heap_sort.rb) -- [C-sharp](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Sorters/Comparison/HeapSorter.cs) -- [C](https://github.com/TheAlgorithms/C/blob/master/sorting/heap_sort.c) -- [Javascript](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/HeapSort.js) - #### Explicação em vídeo [Um vídeo explicando o algoritmo de classificação por seleção](https://www.youtube.com/watch?v=MtQL_ll5KhQ) diff --git "a/pt-br/Algoritmos de Ordena\303\247\303\243o/Insertion Sort.md" "b/pt-br/Algoritmos de Ordena\303\247\303\243o/Insertion Sort.md" index 3ec6b5e1..4d85bda3 100644 --- "a/pt-br/Algoritmos de Ordena\303\247\303\243o/Insertion Sort.md" +++ "b/pt-br/Algoritmos de Ordena\303\247\303\243o/Insertion Sort.md" @@ -46,16 +46,6 @@ e os elementos de 11 a 13 se moverão uma posição à frente de sua posição a 5, 6, 11, 12, 13 - matriz classificada ``` -#### Links de implementação de código - -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/InsertionSort.java) -- [C](https://github.com/TheAlgorithms/C/blob/master/sorting/insertion_sort.c) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/sorting/insertion_sort.cpp) -- [C#](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Sorters/Comparison/InsertionSorter.cs) -- [Scala](https://github.com/TheAlgorithms/Scala/blob/master/src/main/scala/Sort/InsertionSort.scala) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/insertion_sort.py) -- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/sorting/insertion_sort.rb) - #### Explicação em vídeo [Um vídeo CS50 explicando o algoritmo de pesquisa de inserção](https://www.youtube.com/watch?v=DFG-XuyPYUQ) diff --git "a/pt-br/Algoritmos de Ordena\303\247\303\243o/Merge Sort.md" "b/pt-br/Algoritmos de Ordena\303\247\303\243o/Merge Sort.md" index bdd774f0..a29a4285 100644 --- "a/pt-br/Algoritmos de Ordena\303\247\303\243o/Merge Sort.md" +++ "b/pt-br/Algoritmos de Ordena\303\247\303\243o/Merge Sort.md" @@ -31,12 +31,6 @@ Chame recursivamente a função merge sort para ambas as metades, o que fornecer Agora mescle as duas metades para obter a matriz classificada [0, 1, 2, 3, 5, 9] ``` -#### Links de implementação de código - -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/MergeSort.java) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/sorting/merge_sort.cpp) -- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/sorting/merge_sort.rb) - #### Explicação em vídeo [Um vídeo CS50 explicando o algoritmo de classificação de mesclagem](https://www.youtube.com/watch?v=EeQ8pwjQxTM) diff --git "a/pt-br/Algoritmos de Ordena\303\247\303\243o/Quick Sort.md" "b/pt-br/Algoritmos de Ordena\303\247\303\243o/Quick Sort.md" index 2d2c9af6..765d5a27 100644 --- "a/pt-br/Algoritmos de Ordena\303\247\303\243o/Quick Sort.md" +++ "b/pt-br/Algoritmos de Ordena\303\247\303\243o/Quick Sort.md" @@ -67,13 +67,6 @@ Agora, 70 está em seu lugar correto. Todos os elementos menores que isto. ``` -#### Links de implementação de código - -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/QuickSort.java) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/Sorting/Quick%20Sort.cpp) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/quick_sort.py) -- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/sorting/quicksort.rb) - #### Explicação em vídeo [Um vídeo explicando o algoritmo de classificação rápida](https://www.youtube.com/watch?v=COk73cpQbFQ) diff --git "a/pt-br/Algoritmos de Ordena\303\247\303\243o/Selection Sort.md" "b/pt-br/Algoritmos de Ordena\303\247\303\243o/Selection Sort.md" index 939366d8..575bbc7d 100644 --- "a/pt-br/Algoritmos de Ordena\303\247\303\243o/Selection Sort.md" +++ "b/pt-br/Algoritmos de Ordena\303\247\303\243o/Selection Sort.md" @@ -47,17 +47,6 @@ Selecione o número mínimo da matriz (entre o índice 2-3), ou seja, 40 A matriz agora está classificada. ``` -#### Links de implementação de código - -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/SelectionSort.java) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/Sorting/Selection%20Sort.cpp) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/selection_sort.py) -- [Go](https://github.com/TheAlgorithms/Go/blob/master/sort/selectionsort.go) -- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/Sorting/selection_sort.rb) -- [C](https://github.com/TheAlgorithms/C/blob/master/sorting/SelectionSort.c) -- [Scala](https://github.com/TheAlgorithms/Scala/blob/master/src/main/scala/Sort/SelectionSort.scala) -- [Javascript](https://github.com/TheAlgorithms/JavaScript/blob/master/Sorts/SelectionSort.js) - #### Explicação em vídeo [Um vídeo explicando o algoritmo de classificação por seleção](https://www.youtube.com/watch?v=f8hXR_Hvybo) diff --git "a/pt-br/Algoritmos de Ordena\303\247\303\243o/Shell Sort.md" "b/pt-br/Algoritmos de Ordena\303\247\303\243o/Shell Sort.md" index 98696eef..535e7ecf 100644 --- "a/pt-br/Algoritmos de Ordena\303\247\303\243o/Shell Sort.md" +++ "b/pt-br/Algoritmos de Ordena\303\247\303\243o/Shell Sort.md" @@ -52,17 +52,6 @@ Lacuna inicial: 4 12. Divida a lacuna por 2 e repita até lacuna = 1 ``` -#### Links de implementação de código - -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/ShellSort.java) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/Sorting/Shell%20Sort.cpp) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/shell_sort.py) -- [C-Sharp](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Sorters/Comparison/ShellSorter.cs) -- [Go](https://github.com/TheAlgorithms/Go/blob/master/sort/shellsort.go) -- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/Sorting/shell_sort.rb) -- [C](https://github.com/TheAlgorithms/C/blob/master/sorting/shellSort.c) -- [Javascript](https://github.com/TheAlgorithms/JavaScript/blob/master/Sorts/ShellSort.js) - #### Explicação em vídeo [Um vídeo explicando o algoritmo de classificação Shell](https://www.youtube.com/watch?v=H8NiFkGu2PY) diff --git a/pt-br/Estruturas de Dados/Graph/Bellman-Ford.md b/pt-br/Estruturas de Dados/Graph/Bellman-Ford.md index 52a31bd2..14beb730 100644 --- a/pt-br/Estruturas de Dados/Graph/Bellman-Ford.md +++ b/pt-br/Estruturas de Dados/Graph/Bellman-Ford.md @@ -86,13 +86,6 @@ D -2 A-> B-> E-> D = -1 + 2 + -3 E 1 A-> B-> E = -1 + 2 ``` -#### Links de implementação de código - -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/datastructures/graphs/BellmanFord.java) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/dynamic_programming/bellman_ford.cpp) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/graphs/bellman_ford.py) -- [C](https://github.com/TheAlgorithms/C/blob/master/data_structures/graphs/bellman_ford.c) - #### Explicação em vídeo [Um vídeo explicando o Algoritmo Bellman-Ford](https://www.youtube.com/watch?v=hxMWBBCpR6A) diff --git a/pt-br/Estruturas de Dados/Linked Lists/Lista Duplamente Vinculada.md b/pt-br/Estruturas de Dados/Linked Lists/Lista Duplamente Vinculada.md index b17cfc55..dc09750d 100644 --- a/pt-br/Estruturas de Dados/Linked Lists/Lista Duplamente Vinculada.md +++ b/pt-br/Estruturas de Dados/Linked Lists/Lista Duplamente Vinculada.md @@ -102,14 +102,6 @@ comprimento interno; // opcional ! [Rastreamento de algoritmo](https://www.geeksforgeeks.org/wp-content/uploads/gq/2014/03/DLL_add_middle1.png) -## Links de implementação de código - -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/datastructures/lists/DoublyLinkedList.java) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/Data%20Structure/Doubly%20Linked%20List.cpp) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/data_structures/linked_list/doubly_linked_list.py) -- [Go](https://github.com/TheAlgorithms/Go/blob/master/data-structures/linked-list/double-linkedlist.go) -- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/data_structures/linked_lists/double_list.rb) - ## Explicação em vídeo [Um vídeo CS50 explicando a estrutura de dados da lista duplamente vinculada](https://www.youtube.com/watch?v=FHMPswJDCvU) diff --git a/pt-br/Estruturas de Dados/Linked Lists/Lista individual.md b/pt-br/Estruturas de Dados/Linked Lists/Lista individual.md index ec7d3f74..d66044aa 100644 --- a/pt-br/Estruturas de Dados/Linked Lists/Lista individual.md +++ b/pt-br/Estruturas de Dados/Linked Lists/Lista individual.md @@ -37,12 +37,6 @@ class LinkedList { } ``` -## Links de implementação de código - -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/datastructures/lists/SinglyLinkedList.java) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/Data%20Structure/Linked%20List.cpp) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/data_structures/linked_list/singly_linked_list.py) - ## Explicação em vídeo [Um vídeo CS50 explicando a estrutura de dados da lista vinculada](https://www.youtube.com/watch?v=5nsKtQuT6E8) diff --git "a/pt-br/Matem\303\241tica B\303\241sica/M\303\251dia.md" "b/pt-br/Matem\303\241tica B\303\241sica/M\303\251dia.md" index 5ba6f38c..a6b173d0 100644 --- "a/pt-br/Matem\303\241tica B\303\241sica/M\303\251dia.md" +++ "b/pt-br/Matem\303\241tica B\303\241sica/M\303\251dia.md" @@ -58,10 +58,6 @@ Se considerarmos corretamente os dígitos significativos: `soma / contagem = 23` Retorne o valor de 22 ou `23`. -## Implementação - -- [Python](https://github.com/TheAlgorithms/Python/blob/master/maths/average_mean.py) - ## URL do vídeo - [Média na Khan Academy](https://www.khanacademy.org/math/ap-statistics/summarizing-quantitative-data-ap/measuring-center-quantitative/v/mean-median-and-mode) diff --git "a/pt-br/Programa\303\247\303\243o Din\303\242mica/Subsequencia Maxima - Maior Subsequencia Comum (LCS).md" "b/pt-br/Programa\303\247\303\243o Din\303\242mica/Subsequencia Maxima - Maior Subsequencia Comum (LCS).md" index 554c3b56..c2175d3f 100644 --- "a/pt-br/Programa\303\247\303\243o Din\303\242mica/Subsequencia Maxima - Maior Subsequencia Comum (LCS).md" +++ "b/pt-br/Programa\303\247\303\243o Din\303\242mica/Subsequencia Maxima - Maior Subsequencia Comum (LCS).md" @@ -79,12 +79,6 @@ B 0 0 1 2 3 Sendo o comprimento da maior subsequência comum igual a: `dp[4][4] = 3`. -#### Links de implementação de código - -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/dynamicprogramming/LongestCommonSubsequence.java) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/dynamic_programming/longest_common_subsequence.py) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/Dynamic%20Programming/Longest%20Common%20Subsequence.cpp) - #### Explicação em vídeo - [Vídeo do canal OnlineBioinfo Bioinformática explicando sobre o algoritmo LCS](https://youtu.be/cX_hFqA8wDI) diff --git "a/pt-br/Programa\303\247\303\243o Din\303\242mica/Trocando moedas.md" "b/pt-br/Programa\303\247\303\243o Din\303\242mica/Trocando moedas.md" index 5144bdd5..763ee879 100644 --- "a/pt-br/Programa\303\247\303\243o Din\303\242mica/Trocando moedas.md" +++ "b/pt-br/Programa\303\247\303\243o Din\303\242mica/Trocando moedas.md" @@ -57,10 +57,6 @@ Digamos que temos 3 tipos de moeda `[1,2,3]` e queremos mudar para `7` centavos. Portanto, a resposta final é **8**. 8 maneiras de fazer troco de 7 centavos usando todos os tipos de moedas. `{{1,1,1,1,1,1,1}, {1,1,1,1,1,2}, {1,1,1,2,2}, {1,2,2,2}, {1,1,1,1,3}, {1,3,3}, {2,2,3}, {1,1,2,3}}` -#### Link de implementação de código - -[Python](https://github.com/TheAlgorithms/Python/blob/master/dynamic_programming/coin_change.py) - #### Explicação em vídeo [Total de maneiras exclusivas de fazer a mudança em back to back SWE](https://www.youtube.com/watch?v=DJ4a7cmjZY0) diff --git "a/ru/\320\220\320\273\320\263\320\276\321\200\320\270\321\202\320\274\321\213 \320\237\320\276\320\270\321\201\320\272\320\260/\320\221\320\270\320\275\320\260\321\200\320\275\321\213\320\271 \320\237\320\276\320\270\321\201\320\272.md" "b/ru/\320\220\320\273\320\263\320\276\321\200\320\270\321\202\320\274\321\213 \320\237\320\276\320\270\321\201\320\272\320\260/\320\221\320\270\320\275\320\260\321\200\320\275\321\213\320\271 \320\237\320\276\320\270\321\201\320\272.md" index a30caf0a..a35ed96c 100644 --- "a/ru/\320\220\320\273\320\263\320\276\321\200\320\270\321\202\320\274\321\213 \320\237\320\276\320\270\321\201\320\272\320\260/\320\221\320\270\320\275\320\260\321\200\320\275\321\213\320\271 \320\237\320\276\320\270\321\201\320\272.md" +++ "b/ru/\320\220\320\273\320\263\320\276\321\200\320\270\321\202\320\274\321\213 \320\237\320\276\320\270\321\201\320\272\320\260/\320\221\320\270\320\275\320\260\321\200\320\275\321\213\320\271 \320\237\320\276\320\270\321\201\320\272.md" @@ -40,14 +40,6 @@ target = 2 target = 9 ``` -#### Ссылки на реализации алгоритма - -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/searches/BinarySearch.java) -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/search/binary_search.cpp) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/searches/binary_search.py) -- [C-Sharp](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Search/BinarySearcher.cs) -- [C](https://github.com/TheAlgorithms/C/blob/master/searching/binary_search.c) - #### Видео обзоры #### Визуальное представление diff --git "a/ru/\320\220\320\273\320\263\320\276\321\200\320\270\321\202\320\274\321\213 \320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\270/\320\244\320\273\320\260\320\263 \320\235\320\270\320\264\320\265\321\200\320\273\320\260\320\275\320\264\320\276\320\262.md" "b/ru/\320\220\320\273\320\263\320\276\321\200\320\270\321\202\320\274\321\213 \320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\270/\320\244\320\273\320\260\320\263 \320\235\320\270\320\264\320\265\321\200\320\273\320\260\320\275\320\264\320\276\320\262.md" index a14615a7..93fa214e 100644 --- "a/ru/\320\220\320\273\320\263\320\276\321\200\320\270\321\202\320\274\321\213 \320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\270/\320\244\320\273\320\260\320\263 \320\235\320\270\320\264\320\265\321\200\320\273\320\260\320\275\320\264\320\276\320\262.md" +++ "b/ru/\320\220\320\273\320\263\320\276\321\200\320\270\321\202\320\274\321\213 \320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\272\320\270/\320\244\320\273\320\260\320\263 \320\235\320\270\320\264\320\265\321\200\320\273\320\260\320\275\320\264\320\276\320\262.md" @@ -32,8 +32,3 @@ nums = [2, 0, 2, 1, 1, 0] print(dutch_flag_sort(nums)) # Output: [0, 0, 1, 1, 2, 2] ``` - -#### Ссылки на реализации алгоритма - -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/DutchNationalFlagSort.java) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/dutch_national_flag_sort.py) diff --git a/uz/Boshlang'ich Matematika/Fibonachi sonlari.md b/uz/Boshlang'ich Matematika/Fibonachi sonlari.md index 30ab542b..c65daca2 100644 --- a/uz/Boshlang'ich Matematika/Fibonachi sonlari.md +++ b/uz/Boshlang'ich Matematika/Fibonachi sonlari.md @@ -38,13 +38,6 @@ Fibonachi sonlarning 8chi hadini topishni ko'rib chiqamiz: f(8)=21 -## Fibonachi algoritmning dasturlash tillaridagi ko'rinishi: - -- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/math/fibonacci.cpp) -- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/maths/FibonacciNumber.java) -- [Javascript](https://github.com/TheAlgorithms/Javascript/blob/80c2dc85d714f73783f133964d6acd9b5625ddd9/Maths/Fibonacci.js) -- [Python](https://github.com/TheAlgorithms/Python/blob/master/maths/fibonacci.py) - ## Video bog'ich - [YouTube](https://youtu.be/FQiRf4jb3PU) From 241a1540d085772c5b36a7f7434e65d94e7cd2fa Mon Sep 17 00:00:00 2001 From: vil02 Date: Fri, 5 Apr 2024 18:56:16 +0200 Subject: [PATCH 33/40] docs: use LaTeX support instead of external renderer --- ...3\223\261\353\271\204\354\210\230\354\227\264.md" | 10 +++++----- ...3\223\261\354\260\250\354\210\230\354\227\264.md" | 6 +++--- .../\354\236\220\353\246\277\354\210\230.md" | 2 +- ...4\225\214\352\263\240\353\246\254\354\246\230.md" | 12 ++++++------ .../\353\260\260\354\227\264.md" | 2 +- ...\262\260 \353\246\254\354\212\244\355\212\270.md" | 12 ++++++------ ...\262\260 \353\246\254\354\212\244\355\212\270.md" | 12 ++++++------ ...\263\204\354\210\230 \354\240\225\353\240\254.md" | 4 ++-- ...236\254\352\267\200 \353\262\204\354\240\204).md" | 6 +++--- ...\263\221\355\225\251 \354\240\225\353\240\254.md" | 4 ++-- ...\202\275\354\236\205 \354\240\225\353\240\254.md" | 10 +++++----- ...\204\240\355\203\235 \354\240\225\353\240\254.md" | 8 ++++---- .../\354\205\270 \354\240\225\353\240\254.md" | 10 +++++----- .../\355\200\265 \354\240\225\353\240\254.md" | 8 ++++---- 14 files changed, 53 insertions(+), 53 deletions(-) diff --git "a/ko/\352\270\260\354\264\210 \354\210\230\355\225\231/\353\223\261\353\271\204\354\210\230\354\227\264.md" "b/ko/\352\270\260\354\264\210 \354\210\230\355\225\231/\353\223\261\353\271\204\354\210\230\354\227\264.md" index 663d61c3..2d1a571f 100644 --- "a/ko/\352\270\260\354\264\210 \354\210\230\355\225\231/\353\223\261\353\271\204\354\210\230\354\227\264.md" +++ "b/ko/\352\270\260\354\264\210 \354\210\230\355\225\231/\353\223\261\353\271\204\354\210\230\354\227\264.md" @@ -23,7 +23,7 @@ **등비수열의 n번째 항 공식:** -가 초항, 이 공비일 때, 번째 항은: +$a$가 초항, $r$이 공비일 때, $n$번째 항은:

@@ -37,11 +37,11 @@ **등비수열에 관련된 문제를 풀기 위한 일반적인 공식:** -가 초항, 이 공비일 때: +$a$가 초항, $r$이 공비일 때: -- 등비급수 (r < 1) = -- 등비급수 (r > 1) = -- 무한등비급수 (r < 1) = +- 등비급수 $(r < 1) = \frac{a(1-r^n)}{1-r}$ +- 등비급수 $(r > 1) = \frac{a(r^n-1)}{r-1}$ +- 무한등비급수 $(r < 1) = \frac{a}{1-r}$ ## 영상 URL diff --git "a/ko/\352\270\260\354\264\210 \354\210\230\355\225\231/\353\223\261\354\260\250\354\210\230\354\227\264.md" "b/ko/\352\270\260\354\264\210 \354\210\230\355\225\231/\353\223\261\354\260\250\354\210\230\354\227\264.md" index 03a96763..23ac8ad7 100644 --- "a/ko/\352\270\260\354\264\210 \354\210\230\355\225\231/\353\223\261\354\260\250\354\210\230\354\227\264.md" +++ "b/ko/\352\270\260\354\264\210 \354\210\230\355\225\231/\353\223\261\354\260\250\354\210\230\354\227\264.md" @@ -16,7 +16,7 @@ **등차수열의 n번째 항 공식:** -가 초항, 가 공차일 때, 번째 항은: +$a$가 초항, $d$가 공차일 때, $n$번째 항은:

@@ -30,10 +30,10 @@ **등차수열에 관련된 물제를 풀기 위한 일반적인 공식:** -가 초항, 가 공차일 때: +$a$가 초항, $d$가 공차일 때: - 산술평균 = `전체 항의 합 / 항의 개수` -- 등차급수 = `n * (초항 + 말항) / 2` = +- 등차급수 = `n * (초항 + 말항) / 2` = $\frac{n \cdot (2a + (n-1)d)}{2}$ ## 영상 URL diff --git "a/ko/\352\270\260\354\264\210 \354\210\230\355\225\231/\354\236\220\353\246\277\354\210\230.md" "b/ko/\352\270\260\354\264\210 \354\210\230\355\225\231/\354\236\220\353\246\277\354\210\230.md" index 09c2f4fe..114be2d0 100644 --- "a/ko/\352\270\260\354\264\210 \354\210\230\355\225\231/\354\236\220\353\246\277\354\210\230.md" +++ "b/ko/\352\270\260\354\264\210 \354\210\230\355\225\231/\354\236\220\353\246\277\354\210\230.md" @@ -24,7 +24,7 @@ N = 10000 [양수] 3. N을 10으로 나눈다. 4. N이 0이 될 때까지 위의 과정을 반복한다. -**알고리즘 분석:** 위 방법에서 수행되는 작업의 수는 숫자 N의 자릿수와 같다는 사실을 쉽게 알 수 있다. 따라서 이 방법의 시간 복잡도는 이다. (는 숫자 N의 자릿수) +**알고리즘 분석:** 위 방법에서 수행되는 작업의 수는 숫자 N의 자릿수와 같다는 사실을 쉽게 알 수 있다. 따라서 이 방법의 시간 복잡도는 $O(d)$이다. ($d$는 숫자 N의 자릿수) **모의 실행:** `N = 58964`라고 할 때, diff --git "a/ko/\354\236\220\353\243\214\352\265\254\354\241\260/\352\267\270\353\236\230\355\224\204/\353\262\250\353\250\274-\355\217\254\353\223\234 \354\225\214\352\263\240\353\246\254\354\246\230.md" "b/ko/\354\236\220\353\243\214\352\265\254\354\241\260/\352\267\270\353\236\230\355\224\204/\353\262\250\353\250\274-\355\217\254\353\223\234 \354\225\214\352\263\240\353\246\254\354\246\230.md" index 037c182b..a5f41609 100644 --- "a/ko/\354\236\220\353\243\214\352\265\254\354\241\260/\352\267\270\353\236\230\355\224\204/\353\262\250\353\250\274-\355\217\254\353\223\234 \354\225\214\352\263\240\353\246\254\354\246\230.md" +++ "b/ko/\354\236\220\353\243\214\352\265\254\354\241\260/\352\267\270\353\236\230\355\224\204/\353\262\250\353\250\274-\355\217\254\353\223\234 \354\225\214\352\263\240\353\246\254\354\246\230.md" @@ -2,15 +2,15 @@ ## 문제 -방향 가중치 그래프 와 시작점 가 주어졌을 때, 각 점 에 대하여 를 잇는 가장 짧은 경로를 구하라. (는 꼭짓점의 집합, 는 간선의 집합) +방향 가중치 그래프 $G(V, E)$와 시작점 $s \in V$가 주어졌을 때, 각 점 $v \in V$에 대하여 $s$와 $v$를 잇는 가장 짧은 경로를 구하라. ($V$는 꼭짓점의 집합, $E$는 간선의 집합) ## 절차 1. 시작점에서 모든 꼭짓점까지의 거리를 무한대로 초기화한다. 2. 시작점으로의 거리를 0으로 초기화한다. -3. `dist[s]`를 제외한 모든 값을 무한대로 하는 크기가 인 `dist`라는 배열을 만든다. -4. 다음을 회 반복한다. -5. 에 속한 모든 간선 `(u,v)`에 대해 다음을 반복한다: +3. `dist[s]`를 제외한 모든 값을 무한대로 하는 크기가 $|V|$인 `dist`라는 배열을 만든다. +4. 다음을 $|V|-1$회 반복한다. +5. $E$에 속한 모든 간선 `(u,v)`에 대해 다음을 반복한다: ``` dist[v] = minimum(dist[v], dist[u] + weight of edge) @@ -20,11 +20,11 @@ ## 시간 복잡도 - +$O(VE)$ ## 공간 복잡도 - +$O(V^2)$ ## 만든 사람 diff --git "a/ko/\354\236\220\353\243\214\352\265\254\354\241\260/\353\260\260\354\227\264/\353\260\260\354\227\264.md" "b/ko/\354\236\220\353\243\214\352\265\254\354\241\260/\353\260\260\354\227\264/\353\260\260\354\227\264.md" index 35612e38..78536127 100644 --- "a/ko/\354\236\220\353\243\214\352\265\254\354\241\260/\353\260\260\354\227\264/\353\260\260\354\227\264.md" +++ "b/ko/\354\236\220\353\243\214\352\265\254\354\241\260/\353\260\260\354\227\264/\353\260\260\354\227\264.md" @@ -2,7 +2,7 @@ 배열은 프로그래밍에서 가장 기본적인 데이터 구조이다. 배열은 정적 배열과 동적 배열로 나눠진다. 정적 배열은 요소의 수가 고정되어 있고, 각각은 메모리의 동일한 공간을 차지한다. 즉, 정적 배열이 차지하는 메모리는 컴파일 시간에 결정되지만, 동적 배열의 경우 크기가 고정되지 않는다. -배열 요소의 값은 시간 안에 검색할 수 있다. +배열 요소의 값은 $O(1)$ 시간 안에 검색할 수 있다. 모든 배열은 연속된 메모리 주소를 가진다. 우리는 인덱스로 각 요소에 접근할 수 있다. 가장 낮은 인덱스는 첫 요소에 해당하고 가장 높은 인덱스는 마지막 요소에 해당한다. diff --git "a/ko/\354\236\220\353\243\214\352\265\254\354\241\260/\354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270/\353\213\250\354\235\274 \354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270.md" "b/ko/\354\236\220\353\243\214\352\265\254\354\241\260/\354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270/\353\213\250\354\235\274 \354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270.md" index b4057b57..d07fe863 100644 --- "a/ko/\354\236\220\353\243\214\352\265\254\354\241\260/\354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270/\353\213\250\354\235\274 \354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270.md" +++ "b/ko/\354\236\220\353\243\214\352\265\254\354\241\260/\354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270/\353\213\250\354\235\274 \354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270.md" @@ -14,12 +14,12 @@ ### 시간 복잡도 -| 작업 | 평균 | 최악 | -| ---- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | -| 접근 | | | -| 탐색 | | | -| 삽입 | | | -| 제거 | | | +| 작업 | 평균 | 최악 | +| --- | ------ | ------ | +| 접근 | $O(n)$ | $O(n)$ | +| 탐색 | $O(n)$ | $O(n)$ | +| 삽입 | $O(1)$ | $O(1)$ | +| 제거 | $O(1)$ | $O(1)$ | ## 예시 diff --git "a/ko/\354\236\220\353\243\214\352\265\254\354\241\260/\354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270/\354\235\264\354\244\221 \354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270.md" "b/ko/\354\236\220\353\243\214\352\265\254\354\241\260/\354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270/\354\235\264\354\244\221 \354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270.md" index d91fda96..df89bcec 100644 --- "a/ko/\354\236\220\353\243\214\352\265\254\354\241\260/\354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270/\354\235\264\354\244\221 \354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270.md" +++ "b/ko/\354\236\220\353\243\214\352\265\254\354\241\260/\354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270/\354\235\264\354\244\221 \354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270.md" @@ -18,12 +18,12 @@ ### 시간 복잡도 -| 작업 | 평균 | 최악 | -| ---- | --------------------------------------------------------------------------- | ---------------------------------------------------------------------- | -| 접근 | | | -| 탐색 | | | -| 삽입 | | | -| 제거 | | | +| 작업 | 평균 | 최악 | +| --- | ----------- | ------ | +| 접근 | $\Theta(n)$ | $O(n)$ | +| 탐색 | $\Theta(n)$ | $O(n)$ | +| 삽입 | $\Theta(1)$ | $O(1)$ | +| 제거 | $\Theta(1)$ | $O(1)$ | ## 예시 diff --git "a/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\352\263\204\354\210\230 \354\240\225\353\240\254.md" "b/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\352\263\204\354\210\230 \354\240\225\353\240\254.md" index 180ef9db..4f53712e 100644 --- "a/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\352\263\204\354\210\230 \354\240\225\353\240\254.md" +++ "b/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\352\263\204\354\210\230 \354\240\225\353\240\254.md" @@ -15,11 +15,11 @@ n개 원소로 구성된 배열이 주어졌을 때, 이 배열을 정렬하는 ## 시간 복잡도 -- (는 음수가 아닌 key 값의 범위) +- $O(n+k)$ ($k$는 음수가 아닌 key 값의 범위) ## 공간 복잡도 -- (는 음수가 아닌 key 값의 범위) +- $O(n+k)$ ($k$는 음수가 아닌 key 값의 범위) ## 만든 사람 diff --git "a/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\353\262\204\353\270\224 \354\240\225\353\240\254 (\354\236\254\352\267\200 \353\262\204\354\240\204).md" "b/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\353\262\204\353\270\224 \354\240\225\353\240\254 (\354\236\254\352\267\200 \353\262\204\354\240\204).md" index c4bf95dd..2c65b559 100644 --- "a/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\353\262\204\353\270\224 \354\240\225\353\240\254 (\354\236\254\352\267\200 \353\262\204\354\240\204).md" +++ "b/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\353\262\204\353\270\224 \354\240\225\353\240\254 (\354\236\254\352\267\200 \353\262\204\354\240\204).md" @@ -12,12 +12,12 @@ Base case: If the size of the array is 1, return. ## 시간 복잡도 -- 최선: -- 평균: +- 최선: $O(n)$ +- 평균: $O(n^2)$ ## 공간 복잡도 -- 최악: (참고: 기존 버블 정렬의 공간 복잡도는 ) +- 최악: $O(n)$ (참고: 기존 버블 정렬의 공간 복잡도는 $O(1)$) ## 예시 diff --git "a/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\353\263\221\355\225\251 \354\240\225\353\240\254.md" "b/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\353\263\221\355\225\251 \354\240\225\353\240\254.md" index 14bf3b52..905846b3 100644 --- "a/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\353\263\221\355\225\251 \354\240\225\353\240\254.md" +++ "b/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\353\263\221\355\225\251 \354\240\225\353\240\254.md" @@ -12,11 +12,11 @@ n개 원소로 구성된 배열이 주어졌을 때, 이 배열을 정렬하는 ## 시간 복잡도 -- +- $O(n \log n)$ ## 공간 복잡도 -- +- $O(n)$ ## 예시 diff --git "a/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\354\202\275\354\236\205 \354\240\225\353\240\254.md" "b/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\354\202\275\354\236\205 \354\240\225\353\240\254.md" index 74a9f5b2..7b9b3310 100644 --- "a/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\354\202\275\354\236\205 \354\240\225\353\240\254.md" +++ "b/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\354\202\275\354\236\205 \354\240\225\353\240\254.md" @@ -14,15 +14,15 @@ n개 원소로 구성된 배열이 주어졌을 때, 이 배열을 정렬하는 ## 시간 복잡도 - 최악 - - 비교: - - 교환: + - 비교: $O(n^2)$ + - 교환: $O(n^2)$ - 최선 - - 비교: - - 교환: + - 비교: $O(n)$ + - 교환: $O(1)$ ## 공간 복잡도 -- 최악: ([In-place 알고리즘](https://en.wikipedia.org/wiki/In-place_algorithm)으로, 추가적인 메모리 할당이 필요하지 않다) +- 최악: $O(1)$ ([In-place 알고리즘](https://en.wikipedia.org/wiki/In-place_algorithm)으로, 추가적인 메모리 할당이 필요하지 않다) ## 예시 diff --git "a/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\354\204\240\355\203\235 \354\240\225\353\240\254.md" "b/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\354\204\240\355\203\235 \354\240\225\353\240\254.md" index 28040c6d..1f81c92a 100644 --- "a/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\354\204\240\355\203\235 \354\240\225\353\240\254.md" +++ "b/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\354\204\240\355\203\235 \354\240\225\353\240\254.md" @@ -15,13 +15,13 @@ n개 원소로 구성된 배열이 주어졌을 때, 이 배열을 정렬하는 ## 시간 복잡도 -- 최악: -- 최선: -- 평균: +- 최악: $O(n^2)$ +- 최선: $O(n^2)$ +- 평균: $O(n^2)$ ## 공간 복잡도 -- 최악: +- 최악: $O(1)$ ## 예시 diff --git "a/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\354\205\270 \354\240\225\353\240\254.md" "b/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\354\205\270 \354\240\225\353\240\254.md" index f13404cc..81efb901 100644 --- "a/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\354\205\270 \354\240\225\353\240\254.md" +++ "b/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\354\205\270 \354\240\225\353\240\254.md" @@ -14,15 +14,15 @@ n개 원소로 구성된 배열이 주어졌을 때, 이 배열을 정렬하는 ## 시간 복잡도 -셸 정렬의 시간 복잡도는 gap sequences에 따라 다르다. 아래 시간 복잡도는 의 gap sequences를 가정한다. +셸 정렬의 시간 복잡도는 gap sequences에 따라 다르다. 아래 시간 복잡도는 $(\frac{n}{2})^k$의 gap sequences를 가정한다. -- 최악: -- 최선: -- 평균: +- 최악: $O(n^2)$ +- 최선: $O(n)$ +- 평균: $O(n^2)$ ## 공간 복잡도 -- 최악: +- 최악: $O(1)$ ## 만든 사람 diff --git "a/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\355\200\265 \354\240\225\353\240\254.md" "b/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\355\200\265 \354\240\225\353\240\254.md" index 9acb9401..07a8c779 100644 --- "a/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\355\200\265 \354\240\225\353\240\254.md" +++ "b/ko/\354\240\225\353\240\254 \354\225\214\352\263\240\353\246\254\354\246\230/\355\200\265 \354\240\225\353\240\254.md" @@ -13,13 +13,13 @@ n개 원소로 구성된 배열이 주어졌을 때, 이 배열을 정렬하는 ## 시간 복잡도 -- 최악: -- 최선: -- 평균: +- 최악: $O(n^2)$ +- 최선: $O(n \log n)$ +- 평균: $O(n \log n)$ ## 공간 복잡도 -- 최악: +- 최악: $O(\log n)$ ## 만든 사람 From 089b1e18f89dc5d539e13200db23b50900cb19a8 Mon Sep 17 00:00:00 2001 From: Piotr Idzik <65706193+vil02@users.noreply.github.com> Date: Sat, 6 Apr 2024 21:14:51 +0200 Subject: [PATCH 34/40] docs: fix broken links to binary search --- en/Search Algorithms/Exponential Search.md | 4 ++-- .../B\303\272squeda exponencial.md" | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/en/Search Algorithms/Exponential Search.md b/en/Search Algorithms/Exponential Search.md index bca641ab..3530b2c5 100644 --- a/en/Search Algorithms/Exponential Search.md +++ b/en/Search Algorithms/Exponential Search.md @@ -2,7 +2,7 @@ #### Prerequisites -- [Binary Search algorithm](https://github.com/faridevnz/Algorithms-Explanation/blob/master/en/Search%20Algorithms/Binary%20Search.md) +- [Binary Search algorithm](Binary%20Search.md) #### Problem Statement @@ -39,7 +39,7 @@ Now we can apply the binary search on the subarray from 512 and 1_000. #### Complexity Explanation - The complexity of the first part of the algorithm is **O( log *i* )** because if *i* is the position of the target in the array, after doubling the search *index* `⌈log(i)⌉` times, the algorithm will be at a search index that is greater than or equal to *i*. We can write `2^⌈log(i)⌉ >= i` -- The complexity of the second part of the algorithm also is **O ( log *i* )** because that is a simple Binary Search. The Binary Search complexity ( as explained [here](https://github.com/faridevnz/Algorithms-Explanation/blob/master/en/Search%20Algorithms/Binary%20Search.md) ) is O( *n* ) where *n* is the length of the array. In the Exponential Search, the length of the array on which the algorithm is applied is `2^i - 2^(i-1)`, put into words it means '( the length of the array from start to *i* ) - ( the part of array skipped until the previous iteration )'. Is simple verify that `2^i - 2^(i-1) = 2^(i-1) ` +- The complexity of the second part of the algorithm also is **O ( log *i* )** because that is a simple Binary Search. The Binary Search complexity ( as explained [here](Binary%20Search.md) ) is O( *n* ) where *n* is the length of the array. In the Exponential Search, the length of the array on which the algorithm is applied is `2^i - 2^(i-1)`, put into words it means '( the length of the array from start to *i* ) - ( the part of array skipped until the previous iteration )'. Is simple verify that `2^i - 2^(i-1) = 2^(i-1) ` After this detailed explanation we can say that the the complexity of the Exponential Search is: diff --git "a/es/Algoritmos de b\303\272squeda/B\303\272squeda exponencial.md" "b/es/Algoritmos de b\303\272squeda/B\303\272squeda exponencial.md" index 3dad7976..dbddf8c1 100644 --- "a/es/Algoritmos de b\303\272squeda/B\303\272squeda exponencial.md" +++ "b/es/Algoritmos de b\303\272squeda/B\303\272squeda exponencial.md" @@ -2,7 +2,7 @@ #### Requisitos previos -- [Algoritmo de búsqueda binaria](https://github.com/faridevnz/Algorithms-Explicación/blob/master/en/Search%20Algorithms/Binary%20Search.md) +- [Algoritmo de búsqueda binaria](Búsqueda%20binaria.md) #### Declaración de problema @@ -39,7 +39,7 @@ Ahora podemos aplicar la búsqueda binaria en el subarray de 512 y 1_000. #### Explicación de complejidad - La complejidad de la primera parte del algoritmo es **`O( log *i* )`** porque si *i* es la posición del destino en la matriz, después de duplicar la búsqueda *index* `⌈log(i)⌉` veces, el algoritmo estará en un índice de búsqueda que es mayor o igual que *i*. Podemos escribir `2^⌈log(i)⌉ >= i` -- La complejidad de la segunda parte del algoritmo también es **`O ( log *i* )`** porque se trata de una simple búsqueda binaria. La complejidad de búsqueda binaria ( como se explica [aquí](https://github.com/faridevnz/Algorithms-Explicación/blob/master/en/Search%20Algorithms/Binary%20Search.md) ) es `O(*n*)` donde *n* es la longitud de la matriz. En la búsqueda exponencial, la longitud de la matriz en la que se aplica el algoritmo es `2^i - 2^(i-1)`, en palabras significa `(la longitud de la matriz de principio a *i* ) - (la parte de matriz omitida hasta la iteración anterior)`. Es simple verificar que `2^i - 2^(i-1) = 2^(i-1)`. +- La complejidad de la segunda parte del algoritmo también es **`O ( log *i* )`** porque se trata de una simple búsqueda binaria. La complejidad de búsqueda binaria ( como se explica [aquí](Búsqueda%20binaria.md) ) es `O(*n*)` donde *n* es la longitud de la matriz. En la búsqueda exponencial, la longitud de la matriz en la que se aplica el algoritmo es `2^i - 2^(i-1)`, en palabras significa `(la longitud de la matriz de principio a *i* ) - (la parte de matriz omitida hasta la iteración anterior)`. Es simple verificar que `2^i - 2^(i-1) = 2^(i-1)`. Después de esta explicación detallada, podemos decir que la complejidad de la búsqueda exponencial es: From f76f185fd89f47243d84a591795d822123644ea3 Mon Sep 17 00:00:00 2001 From: Piotr Idzik <65706193+vil02@users.noreply.github.com> Date: Mon, 8 Apr 2024 11:02:14 +0200 Subject: [PATCH 35/40] docs: fix broken link to the license file (#236) --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ed8e4534..c48f48a8 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -4,7 +4,7 @@ Contributions must be all your own work; plagiarism is not allowed. By submitting a pull request, you agree to license your contribution -under the [license of this repository](https://github.com/TheAlgorithms/Algorithms-Explanation/blob/master/LICENSE.md). +under the [license of this repository](./LICENSE.txt). ## Translations From 6ad0d2a3ec9d3d114d5c8db45687bb559cae777b Mon Sep 17 00:00:00 2001 From: vil02 Date: Tue, 9 Apr 2024 18:55:15 +0200 Subject: [PATCH 36/40] docs: update Khan Academy link --- en/Basic Math/Average_Mean.md | 2 +- "es/Matematicas B\303\241sico/Promedio.md" | 2 +- .../\355\217\211\352\267\240\352\260\222.md" | 2 +- "pt-br/Matem\303\241tica B\303\241sica/M\303\251dia.md" | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/en/Basic Math/Average_Mean.md b/en/Basic Math/Average_Mean.md index f31972d5..5eacce57 100644 --- a/en/Basic Math/Average_Mean.md +++ b/en/Basic Math/Average_Mean.md @@ -59,7 +59,7 @@ Return the value of 22.857142 or `23`. ## Video URL -- [Mean on Khan Academy](https://www.khanacademy.org/math/ap-statistics/summarizing-quantitative-data-ap/measuring-center-quantitative/v/mean-median-and-mode) +- [Mean on Khan Academy](https://www.khanacademy.org/math/cc-sixth-grade-math/cc-6th-data-statistics/mean-and-median/v/mean-median-and-mode) ## Others diff --git "a/es/Matematicas B\303\241sico/Promedio.md" "b/es/Matematicas B\303\241sico/Promedio.md" index 6735c765..02d3801f 100644 --- "a/es/Matematicas B\303\241sico/Promedio.md" +++ "b/es/Matematicas B\303\241sico/Promedio.md" @@ -60,7 +60,7 @@ Devuelva el valor de 22. 857142 o `23`. ## Video en YouTube -- [Media en Khan Academy](https://www.khanacademy.org/math/ap-statistics/summarizing-quantitative-data-ap/measuring-center-quantitative/v/mean-media-and-mode) +- [Media en Khan Academy](https://www.khanacademy.org/math/cc-sixth-grade-math/cc-6th-data-statistics/mean-and-median/v/mean-median-and-mode) ## Otros diff --git "a/ko/\352\270\260\354\264\210 \354\210\230\355\225\231/\355\217\211\352\267\240\352\260\222.md" "b/ko/\352\270\260\354\264\210 \354\210\230\355\225\231/\355\217\211\352\267\240\352\260\222.md" index e78aa369..553fcacf 100644 --- "a/ko/\352\270\260\354\264\210 \354\210\230\355\225\231/\355\217\211\352\267\240\352\260\222.md" +++ "b/ko/\352\270\260\354\264\210 \354\210\230\355\225\231/\355\217\211\352\267\240\352\260\222.md" @@ -57,7 +57,7 @@ count = 7 ## 영상 URL -- [Khan Academy](https://www.khanacademy.org/math/ap-statistics/summarizing-quantitative-data-ap/measuring-center-quantitative/v/mean-median-and-mode) +- [Khan Academy](https://www.khanacademy.org/math/cc-sixth-grade-math/cc-6th-data-statistics/mean-and-median/v/mean-median-and-mode) ## 기타 diff --git "a/pt-br/Matem\303\241tica B\303\241sica/M\303\251dia.md" "b/pt-br/Matem\303\241tica B\303\241sica/M\303\251dia.md" index a6b173d0..40193b9f 100644 --- "a/pt-br/Matem\303\241tica B\303\241sica/M\303\251dia.md" +++ "b/pt-br/Matem\303\241tica B\303\241sica/M\303\251dia.md" @@ -60,7 +60,7 @@ Retorne o valor de 22 ou `23`. ## URL do vídeo -- [Média na Khan Academy](https://www.khanacademy.org/math/ap-statistics/summarizing-quantitative-data-ap/measuring-center-quantitative/v/mean-median-and-mode) +- [Média na Khan Academy](https://www.khanacademy.org/math/cc-sixth-grade-math/cc-6th-data-statistics/mean-and-median/v/mean-median-and-mode) ## Outros From a4f91d17f0c4f34649e6f68a78a3473d36864be8 Mon Sep 17 00:00:00 2001 From: Piotr Idzik <65706193+vil02@users.noreply.github.com> Date: Wed, 10 Apr 2024 23:21:52 +0200 Subject: [PATCH 37/40] docs: update the link to tutorialhorizon about circular linked list (#239) --- en/Data Structures/Linked Lists/Circular Linked List.md | 2 +- ...227\260\352\262\260 \353\246\254\354\212\244\355\212\270.md" | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/en/Data Structures/Linked Lists/Circular Linked List.md b/en/Data Structures/Linked Lists/Circular Linked List.md index bf5d5081..ab86a80e 100644 --- a/en/Data Structures/Linked Lists/Circular Linked List.md +++ b/en/Data Structures/Linked Lists/Circular Linked List.md @@ -37,7 +37,7 @@ The Linked List has a ```pointer``` to the adjacent elements but the last node i ### SLL v.s. CLL -![image](https://i0.wp.com/algorithms.tutorialhorizon.com/files/2016/03/Circular-Linked-List.png) +![image](https://tutorialhorizon.com/static/media/algorithms/2016/03/Circular-Linked-List.png) ### Example diff --git "a/ko/\354\236\220\353\243\214\352\265\254\354\241\260/\354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270/\354\233\220\355\230\225 \354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270.md" "b/ko/\354\236\220\353\243\214\352\265\254\354\241\260/\354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270/\354\233\220\355\230\225 \354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270.md" index d2c798d6..5e956227 100644 --- "a/ko/\354\236\220\353\243\214\352\265\254\354\241\260/\354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270/\354\233\220\355\230\225 \354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270.md" +++ "b/ko/\354\236\220\353\243\214\352\265\254\354\241\260/\354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270/\354\233\220\355\230\225 \354\227\260\352\262\260 \353\246\254\354\212\244\355\212\270.md" @@ -37,7 +37,7 @@ ### SLL v.s. CLL -![영상](https://i0.wp.com/algorithms.tutorialhorizon.com/files/2016/03/Circular-Linked-List.png) +![영상](https://tutorialhorizon.com/static/media/algorithms/2016/03/Circular-Linked-List.png) ### 예시 From e34a629b958595d84d2a9250c8feff1afa45ba8a Mon Sep 17 00:00:00 2001 From: Piotr Idzik <65706193+vil02@users.noreply.github.com> Date: Wed, 10 Apr 2024 23:22:51 +0200 Subject: [PATCH 38/40] docs: remove dead link about LCS (#240) --- .../Subsequencia Maxima - Maior Subsequencia Comum (LCS).md" | 1 - 1 file changed, 1 deletion(-) diff --git "a/pt-br/Programa\303\247\303\243o Din\303\242mica/Subsequencia Maxima - Maior Subsequencia Comum (LCS).md" "b/pt-br/Programa\303\247\303\243o Din\303\242mica/Subsequencia Maxima - Maior Subsequencia Comum (LCS).md" index c2175d3f..8535f49b 100644 --- "a/pt-br/Programa\303\247\303\243o Din\303\242mica/Subsequencia Maxima - Maior Subsequencia Comum (LCS).md" +++ "b/pt-br/Programa\303\247\303\243o Din\303\242mica/Subsequencia Maxima - Maior Subsequencia Comum (LCS).md" @@ -82,4 +82,3 @@ Sendo o comprimento da maior subsequência comum igual a: `dp[4][4] = 3`. #### Explicação em vídeo - [Vídeo do canal OnlineBioinfo Bioinformática explicando sobre o algoritmo LCS](https://youtu.be/cX_hFqA8wDI) -- [Video de analise do algoritmo pelo canal Delacyr Ferreira](https://youtu.be/wnq0SqzjbNU) \ No newline at end of file From d85472b6ae674c7dbbc034809c51526bc7ca2793 Mon Sep 17 00:00:00 2001 From: Piotr Idzik <65706193+vil02@users.noreply.github.com> Date: Wed, 10 Apr 2024 23:28:51 +0200 Subject: [PATCH 39/40] docs: fix broken link to gitter (#237) --- .github/workflows/stale.yml | 4 ++-- README.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 93befa6c..bda5bfac 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -9,9 +9,9 @@ jobs: - uses: actions/stale@v4 with: stale-issue-message: 'This issue has been automatically marked as abandoned because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.' - close-issue-message: 'Please ping one of the maintainers once you add more information and updates here. If this is not the case and you need some help, feel free to ask for help in our [Gitter](https://gitter.im/TheAlgorithms) channel. Thank you for your contributions!' + close-issue-message: 'Please ping one of the maintainers once you add more information and updates here. If this is not the case and you need some help, feel free to ask for help in our [Gitter](https://gitter.im/TheAlgorithms/community) channel. Thank you for your contributions!' stale-pr-message: 'This pull request has been automatically marked as abandoned because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.' - close-pr-message: 'Please ping one of the maintainers once you commit the changes requested or make improvements on the code. If this is not the case and you need some help, feel free to ask for help in our [Gitter](https://gitter.im/TheAlgorithms) channel. Thank you for your contributions!' + close-pr-message: 'Please ping one of the maintainers once you commit the changes requested or make improvements on the code. If this is not the case and you need some help, feel free to ask for help in our [Gitter](https://gitter.im/TheAlgorithms/community) channel. Thank you for your contributions!' exempt-issue-labels: 'dont-close,approved' exempt-pr-labels: 'dont-close,approved' days-before-stale: 30 diff --git a/README.md b/README.md index e1c8e5ab..f9520d85 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Algorithms explanation -[![Gitter chat](https://img.shields.io/badge/Chat-Gitter-ff69b4.svg?label=Chat&logo=gitter&style=flat-square)](https://gitter.im/TheAlgorithms)  +[![Gitter chat](https://img.shields.io/badge/Chat-Gitter-ff69b4.svg?label=Chat&logo=gitter&style=flat-square)](https://gitter.im/TheAlgorithms/community)  [![contributions welcome](https://img.shields.io/static/v1.svg?label=Contributions&message=Welcome&color=0059b3&style=flat-square)](https://github.com/TheAlgorithms/Ruby/blob/master/CONTRIBUTING.md)  ![Repository size](https://img.shields.io/github/repo-size/TheAlgorithms/Algorithms-Explanation.svg?label=Repo%20size&style=flat-square)  [![Discord chat](https://img.shields.io/discord/808045925556682782.svg?logo=discord&colorB=5865F2&style=flat-square)](https://discord.gg/c7MnfGFGa6) From bbfce50b37c6be54d3c8b6b940e962fa6d864740 Mon Sep 17 00:00:00 2001 From: Piotr Idzik <65706193+vil02@users.noreply.github.com> Date: Wed, 10 Apr 2024 23:29:53 +0200 Subject: [PATCH 40/40] chore: fail `url_check` when broken links are found (#241) --- .github/workflows/url_check.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/url_check.yml b/.github/workflows/url_check.yml index 4e28798a..6533f676 100644 --- a/.github/workflows/url_check.yml +++ b/.github/workflows/url_check.yml @@ -24,5 +24,5 @@ jobs: args: > --no-progress * - fail: false + fail: true ... pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy