An example of a beginner-level Algorithm, intermediate level Algorithm and a complex/expert level Algorithm?

I'd like to get a sense for the range of complexity that algorithms fall into. I think it would be interesting and helpful for those, like me, trying to better understand how algorithms are formulated and how to deconstruct them.

Can you offer a basic algorithm with explanation, an intermediate algorithm with explanation, and maybe an expert level one (with or without) an explanation?

From the Programmer Competency Matrix:

Beginner
Basic sorting, searching and data structure traversal and retrieval algorithms

Intermediate
Tree and Graph data structures, simple greedy and divide and conquer algorithms.

graph algorithms, numerical computation algorithms, etc.

• These seem to be pitched somewhat lower than the ones in other answers. – Eliot Ball Aug 30 '12 at 11:25

Beginner

Binary Search: Locates the position of an item in a sorted array.

AVL Tree Insertion: Insert an item in a AVL tree maintaining the subtree balancing property.

Depth-first Search, Breadth-first Search: Walk over the nodes of a Graph in DFS or BFS order.

Intermediate

Dijkstra's Algorithm: Graph search algorithm that solves the single-source shortest path problem for a graph with nonnegative edge path costs, producing a shortest path tree.

Longest Common Subsequence: Find the longest subsequence common to all sequences in a set of sequences (often just two).

Convex Hull (Graham Scan): Given a set of points, find the minimum subset of those points to cover with a convex polygon.

Counting Sort: Sorting algorithm of consecutive integers in O(n).