Giudoku Official Site
During this last period, also thanks to the Euler project, I have been very interested in algorithms. So I decided to study the most famous ones, plus some random others I found, and to spend some time implementing them.
Here you can find my experiments with brief descriptions.
Most of codes are written in Java, because I'm studying it at the university and need some practice.
Moreover, when advantageous or elegant, recursion is always used.

Searching algorithms
Looking for a particular element in the array.
Linear search
Binary search

Sorting algorithms
The interesting problem of sorting an array of integers.
Bubble sort
Selection sort
Insertion sort
Quicksort
Counting sort

Graphs
A graph is a representation of a set of objects, where some of them are connected by links.
Dijkstra's algorithm

Trees
A tree is an acyclic oriented graph where each node has zero or more children nodes and at most one parent node.
In order visit
Interval tree

Multiple recursion
In multiple recursion, a method calls itself n times (where n depends on the size of the input) to solve a particular problem.
Permutations and dispositions with repetition
N queens problem
Alternate method for reversing a linked list

Others
Algorithms that I couldn't place in the previous sections.
Palindromes
Find the minimum in array
XOR swapping
Operator precedence parsing
Efficient powering of a number
DPLL
Order statistics