Explore, visualize, and test algorithms in your favorite languages.
An efficient sorting algorithm using a divide-and-conquer approach with an average time complexity of O(n log n).
Finds the shortest paths from a source node in a weighted graph using a priority queue.
A stable sorting algorithm that divides and merges arrays with a time complexity of O(n log n).
Traverses graphs level by level, useful for finding the shortest path in unweighted graphs.
Maximizes the total value of items in a knapsack with weight limits using dynamic programming.
Efficiently finds an item in a sorted list by repeatedly halving the search interval.
Run and test data structures and algorithms in multiple programming languages, including Python, Java, C++, JavaScript, and more.
Write, run, and modify algorithms directly in the browser with our code editor, and see real-time outputs for multiple languages.
Visualize how algorithms work step-by-step with dynamic graphical representations, making complex concepts easier to understand.
Access algorithms programmatically via our API, allowing you to fetch algorithm implementations and run them with custom inputs.