Library‎ > ‎

### Design & Analysis of Algorithm

 Any mathematical problem which is to be solved using computers requires a specific algorithm designed for it. And once algorithm is ready it can be then converted to any of the programming language to make it workable  on computer system. The most important property for any algorithm is to produce a correct output with in a feasible time and this time is always  dependent on the input size of the problem. Higher the number of inputs to be processed, higher the execution time will be taken to produce an answer. So in this subject we are going to read about what are the different factors that effect design of the algorithm, how to avoid the performance lag, how to define the limits for any input size, which techniques are used to solve the real world problems in terms of computer programs, and how to optimize the existing algorithm for certain problems.Following are the topics which we are going to cover:IntroductionBasic Algorithm TechniquesDivide and Conquer TechniqueGreedy TechniqueRandomization TechniquesDynamic Programming TechniqueGraph AlgorithmsIntroduction to graphsBreadth First Search & its ApplicationsDepth First Search & its ApplicationsTopological SortMinimum Spanning TreeDijkstra AlgorithmBellman ford AlgorithmSorting and SearchingLinear SearchBinary SearchBubble SortQuick SortMerge SortHeap SortRadix SortLower Bounds of SortingMedian and Order StatisticsNP-completenessIntroduction to problem classes3SAT of NP-CompleteProving a problem to be NP-complete using polynomial-time reduction.Examples of NP-complete problemsApproximation algorithms for various NP-complete problemsMisc TopicsKnuth_Monis-Pratt algorithmConvex hulls and its applicationsFast Fourier Transform (FFT) and its applicationsInteger and polynomial arithmeticStrassen's algorithmReferences Leiserson, Charles E., Ronald L. Rivest, and Clifford Stein. Introduction to algorithms. Ed. Thomas H. Cormen. The MIT press, 2001.