Algorithm is any well-deifned computational procedure
permutation = reodering
An algorithm is said to be correct if,for every correct input it halts a correct output
Algorithm can be specified in English,as a computer programor even as a hardware designas long as it is providing a precise description of the computational requirement.
Computing time is therefore a bounded resource,and so is space in memory.
complexity is a study about the effeciency of algorithms in terms of time or space
recursive algorithm is an algorithm which call itself again and again until the base condition is achieved, it use loop and data structures like stack,queues to solve problem.
exact algorithms are capable of finding an optimal solution for any problem.
Approximatealgorithms are the type of algorithms that find the result as an average outcom of sub outcomes to a problem.
In serial algorithm one instruction is executed at a time.
parallel algorithms are those in which we devide the problem into subproblem and execute them separately.
if parallel algorithms are distributed on different machines then they are known as distributed algorithms
in Greedy method at each step a decision is made to choose the local optimum without thinking about the future.
Divide and Conquer strategy involves dividing a problem into sub-problem,recursively solving them and then recombining them for the final answer
Dynamic programming dynamically decide whether to call or retrieve values from the table.
Backtracking is algorithmic-technique for solving problems recursively by trying to build a solutin incrementally, one piece at a time,removing those solution that fails to satisfy the constraints of the problem at any point of time.
Brute Force algorithm simply tries all the possibilities until satisfactory solution is found.
Randomized Algorithms uses a random number at least once during the computation to make a decision.