@@ -44,21 +44,21 @@ This is a collection of algorithms and data structures which I've implement over
44
44
* [ Hash Array Mapped Trie (HAMT)] ( src/com/jwetherell/algorithms/data_structures/HashArrayMappedTrie.java )
45
45
* [ Hash Map (associative array)] ( src/com/jwetherell/algorithms/data_structures/HashMap.java )
46
46
* [ Interval Tree] ( src/com/jwetherell/algorithms/data_structures/IntervalTree.java )
47
- * [ Implicit Key Treap] ( ( src/com/jwetherell/algorithms/data_structures/ImplicitKeyTreap.java) )
47
+ * [ Implicit Key Treap] ( src/com/jwetherell/algorithms/data_structures/ImplicitKeyTreap.java )
48
48
* [ KD Tree (k-dimensional tree or k-d tree)] ( src/com/jwetherell/algorithms/data_structures/KDTree.java )
49
- * [ List [ backed by an array or a linked list]] ( ( src/com/jwetherell/algorithms/data_structures/List.java) )
49
+ * [ List [ backed by an array or a linked list]] ( src/com/jwetherell/algorithms/data_structures/List.java )
50
50
* [ Matrix] ( src/com/jwetherell/algorithms/data_structures/Matrix.java )
51
51
* [ Patricia Trie] ( src/com/jwetherell/algorithms/data_structures/PatriciaTrie.java )
52
52
* [ Quad-Tree (Point-Region or MX-CIF)] ( src/com/jwetherell/algorithms/data_structures/QuadTree.java )
53
53
* [ Queue [ backed by an array or a linked list]] ( src/com/jwetherell/algorithms/data_structures/Queue.java )
54
- * [ Radix Trie (associative array) [ backed by a Patricia Trie]] ( src/com/jwetherell/algorithms/data_structures/RadixTree .java )
54
+ * [ Radix Trie (associative array) [ backed by a Patricia Trie]] ( src/com/jwetherell/algorithms/data_structures/RadixTrie .java )
55
55
* [ Red-Black Tree] ( src/com/jwetherell/algorithms/data_structures/RedBlackTree.java )
56
56
* [ Segment Tree] ( src/com/jwetherell/algorithms/data_structures/SegmentTree.java )
57
57
* [ Skip List] ( src/com/jwetherell/algorithms/data_structures/SkipList.java )
58
58
* [ Splay Tree] ( src/com/jwetherell/algorithms/data_structures/SplayTree.java )
59
59
* [ Stack [ backed by an array or a linked list]] ( src/com/jwetherell/algorithms/data_structures/Stack.java )
60
60
* [ Suffix Tree (Ukkonen's algorithm)] ( src/com/jwetherell/algorithms/data_structures/SuffixTree.java )
61
- * [ Suffix Trie [ backed by a Trie]] ( src/com/jwetherell/algorithms/data_structures/SufficTrie .java )
61
+ * [ Suffix Trie [ backed by a Trie]] ( src/com/jwetherell/algorithms/data_structures/SuffixTrie .java )
62
62
* [ Treap] ( src/com/jwetherell/algorithms/data_structures/Treap.java )
63
63
* [ Tree Map (associative array) [ backed by an AVL Tree]] ( src/com/jwetherell/algorithms/data_structures/TreeMap.java )
64
64
* [ Trie] ( src/com/jwetherell/algorithms/data_structures/Trie.java )
@@ -149,39 +149,39 @@ This is a collection of algorithms and data structures which I've implement over
149
149
150
150
## Search
151
151
* Get index of value in array
152
- + [ Linear] ( src/com/jwetherell/algorithms/Sequences /LinearSearch.java )
153
- + [ Quickselect] ( src/com/jwetherell/algorithms/Sequences /QuickSelect.java )
154
- + [ Binary [ sorted array input only]] ( src/com/jwetherell/algorithms/Sequences /BinarySearch.java )
155
- + [ Lower bound [ sorted array input only]] ( src/com/jwetherell/algorithms/Sequences/LpperBound .java )
156
- + [ Upper bound [ sorted array input only]] ( src/com/jwetherell/algorithms/Sequences /UpperBound.java )
152
+ + [ Linear] ( src/com/jwetherell/algorithms/search /LinearSearch.java )
153
+ + [ Quickselect] ( src/com/jwetherell/algorithms/search /QuickSelect.java )
154
+ + [ Binary [ sorted array input only]] ( src/com/jwetherell/algorithms/search /BinarySearch.java )
155
+ + [ Lower bound [ sorted array input only]] ( src/com/jwetherell/algorithms/search/LowerBound .java )
156
+ + [ Upper bound [ sorted array input only]] ( src/com/jwetherell/algorithms/search /UpperBound.java )
157
157
+ Optimized binary (binary until a threashold then linear) [ sorted array input only]
158
- + [ Interpolation [ sorted array input only]] ( src/com/jwetherell/algorithms/Sequences /InterpolationSearch.java )
158
+ + [ Interpolation [ sorted array input only]] ( src/com/jwetherell/algorithms/search /InterpolationSearch.java )
159
159
160
160
## Sequences
161
- * [ Find longest common subsequence (dynamic programming)] ( src/com/jwetherell/algorithms/Sequences /LongestCommonSubsequence.java )
162
- * [ Find longest increasing subsequence (dynamic programming)] ( src/com/jwetherell/algorithms/Sequences /LongestIncreasingSubsequence.java )
163
- * [ Find number of times a subsequence occurs in a sequence (dynamic programming)] ( src/com/jwetherell/algorithms/Sequences /SubsequenceCounter.java )
164
- * [ Find i-th element in a Fibonacci sequence] ( src/com/jwetherell/algorithms/Sequences /FibonacciSequence.java )
161
+ * [ Find longest common subsequence (dynamic programming)] ( src/com/jwetherell/algorithms/sequence /LongestCommonSubsequence.java )
162
+ * [ Find longest increasing subsequence (dynamic programming)] ( src/com/jwetherell/algorithms/sequence /LongestIncreasingSubsequence.java )
163
+ * [ Find number of times a subsequence occurs in a sequence (dynamic programming)] ( src/com/jwetherell/algorithms/sequence /SubsequenceCounter.java )
164
+ * [ Find i-th element in a Fibonacci sequence] ( src/com/jwetherell/algorithms/sequence /FibonacciSequence.java )
165
165
+ using a loop
166
166
+ using recursion
167
167
+ using matrix multiplication
168
168
+ using Binet's formula
169
- * [ Find total of all elements in a sequence(Arithmetic Progression)] ( src/com/jwetherell/algorithms/Sequences /ArithmeticProgression.java )
169
+ * [ Find total of all elements in a sequence(Arithmetic Progression)] ( src/com/jwetherell/algorithms/sequence /ArithmeticProgression.java )
170
170
+ using a loop
171
171
+ using Triangular numbers
172
- * [ Largest sum of contiguous subarray (Kadane's algorithm)] ( src/com/jwetherell/algorithms/Sequences /LargestSumContiguousSubarray.java )
173
- * [ Longest palindromic subsequence (dynamic programming)] ( src/com/jwetherell/algorithms/Sequences/LongestPalindromicSubsequence .java )
172
+ * [ Largest sum of contiguous subarray (Kadane's algorithm)] ( src/com/jwetherell/algorithms/sequence /LargestSumContiguousSubarray.java )
173
+ * [ Longest palindromic subsequence (dynamic programming)] ( src/com/jwetherell/algorithms/sequence/LongestPalindromicSubsequence .java )
174
174
175
175
## Sorts
176
- * [ American Flag Sort] ( src/com/jwetherell/algorithms/Sorts /AmericanFlagSort.java )
177
- * [ Bubble Sort] ( src/com/jwetherell/algorithms/Sorts /BubbleSort.java )
178
- * [ Counting Sort (Integers only)] ( src/com/jwetherell/algorithms/Sorts /CountingSort.java )
179
- * [ Heap Sort] ( src/com/jwetherell/algorithms/Sorts /HeapSort.java )
180
- * [ Insertion Sort] ( src/com/jwetherell/algorithms/Sorts /InsertionSort.java )
181
- * [ Merge Sort] ( src/com/jwetherell/algorithms/Sorts/AMergeSort .java )
182
- * [ Quick Sort] ( src/com/jwetherell/algorithms/Sorts /QuickSort.java )
183
- * [ Radix Sort (Integers only)] ( src/com/jwetherell/algorithms/Sorts /RadixSort.java )
184
- * [ Shell's Sort] ( src/com/jwetherell/algorithms/Sorts /ShellSort.java )
176
+ * [ American Flag Sort] ( src/com/jwetherell/algorithms/sorts /AmericanFlagSort.java )
177
+ * [ Bubble Sort] ( src/com/jwetherell/algorithms/sorts /BubbleSort.java )
178
+ * [ Counting Sort (Integers only)] ( src/com/jwetherell/algorithms/sorts /CountingSort.java )
179
+ * [ Heap Sort] ( src/com/jwetherell/algorithms/sorts /HeapSort.java )
180
+ * [ Insertion Sort] ( src/com/jwetherell/algorithms/sorts /InsertionSort.java )
181
+ * [ Merge Sort] ( src/com/jwetherell/algorithms/sorts/MergeSort .java )
182
+ * [ Quick Sort] ( src/com/jwetherell/algorithms/sorts /QuickSort.java )
183
+ * [ Radix Sort (Integers only)] ( src/com/jwetherell/algorithms/sorts /RadixSort.java )
184
+ * [ Shell's Sort] ( src/com/jwetherell/algorithms/sorts /ShellSort.java )
185
185
186
186
## String Functions
187
187
### [ String Functions] ( src/com/jwetherell/algorithms/strings/StringFunctions.java )
0 commit comments