A *computer program* is clear instructions in a programming language that solve some problem.

You can write this program in different programming languages, but the solution to the problem irrespective of programming language remain the same. Therefore, an algorithm is **an independent solution** to a computer-based problem.

## About Algorithms Tutorial

This tutorial is meant for beginner who are new to algorithms. Some experience with a programming language is sufficient to start learning algorithms, but here are some more information about prerequisites to learn algorithms.

- You must be familiar with basic mathematical concepts such as
*exponents, set theory, mathematical induction, trees, graphs, relations, limits and so on.* - Some knowledge of programming is recommended such as C/C++ or Java Programming.

You can visit our programming tutorials to learn programming concepts to get comfortable with algorithms.

## Algorithms Tutorial Topics

Here is a list of topics for algorithms. Read from top (easy) to bottom (difficult).

### 1. Algorithms Fundamentals

- Algorithm Introduction
- Algorithm Pseudo Code
- Algorithm Complexities
- Algorithm Order of Growth
- Algorithm Time Complexity

### 3. Hashing

### 2. Search Algorithms

- Algorithm Search Overview
- Linear Search Algorithm
- Transpose Sequential Search
- Binary Search Algorithm
- Interpolation Search Algorithm
- Fibonacci Search Algorithm

### 4. Sorting Algorithms

## Recommended Books

Beginners often find algorithms difficult to learn. Algorithms are purely logical and need clear thinking. You must be able to categorize algorithms and recognize which one is suitable for your programming projects one you understand them.

Apart from what you learn in this tutorial, we recommend some books in this section which will help you understand Algorithms in best possible way. We have picked the best books for you.