The Algorithms, methods for solving problems, Data structures- for efficiently organizing data in a computer memory. Algorithms and Data structures go hand in hand for efficient implementation of application. Good Algorithm is better than a super computer.

## Algorithmic Analysis

## Searching

- Linear Search Variations in Java
- Binary Search Iterative Algorithm implementation in Java
- Binary Search Recursive Algorithm implementation in Java

## Recursion

- Reverse of a String using recursion in Java
- Euclid Algorithm for finding GCD of two numbers
- Factorial of a number using recursion
- Power of a given number using recursion
- Fibonacci series using recursion in Java
- Linear Sum using recursion in Java
- Reversing an array using recursion in Java
- Towers of Hanoi puzzle in Java

## Finding Duplicates

- Finding duplicates in an array -BruteForce O(n^2)
- Finding duplicates in a sorted array -O(nlogn)
- Finding duplicates in an array using Hashtables -O(n)
- Finding duplicates in an array using negation, single scan -O(n)