You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Here you'll find implementations of popular algorithms and data structures in everyone's favorite new language Java, with detailed explanations of how they work.
4
+
Here you'll find implementations of popular algorithms and data structures in everyone's favorite new language, Java, with detailed explanations of how they work.
5
5
6
6
If you're a computer science student who needs to learn this stuff for exams -- or if you're a self-taught programmer who wants to brush up on the theory behind your craft -- you've come to the right place!
7
7
8
8
The goal of this project is to explain how algorithms work. The focus is on clarity and readability of the code, not on making a reusable library that you can drop into your own projects. That said, most of the code should be ready for production use but you may need to tweak it to fit into your own codebase.
9
9
10
-
Code is compatible Eclipse Oxigen, Gradle and Java 1.8. We'll keep this updated with the latest version of Java.
10
+
Code is compatible Eclipse Oxigen, Maven and Java 1.8. We'll keep this updated with the latest version of Java.
The choice of data structure for a particular task depends on a few things.
21
16
@@ -25,10 +20,13 @@ Second, it matters what particular operations you'll be performing most, as cert
25
20
26
21
Most of the time using just the built-in Array, Dictionary, and Set types is sufficient, but sometimes you may want something more fancy...
27
22
23
+
> Remember that on each package you have a detailed explanation of its content, theory most of it.
24
+
28
25
### Trees
29
26
- Heap. A binary tree stored in an array, so it doesn't use pointers. Makes a great priority queue.
30
27
Fibonacci Heap
31
-
- B-Tree. A self-balancing search tree, in which nodes can have more than two children.
28
+
- B-Tree. A B-tree is a balanced tree, but it is not a binary tree. Nodes have more children, which increases per-node search time but decreases the number of nodes the search needs to visit
29
+
- AVL Tree. An AVL tree is a self-balancing binary search tree, balanced to maintain O(log n) height.
32
30
33
31
### Hashing
34
32
- Hash Table. Allows you to store and retrieve objects by a key. This is how the dictionary type is usually implemented.
0 commit comments