Design and analysis of algorithms is a specialized branch of computer science that studies the characteristics and performance of an algorithm to solve the problem, regardless of the algorithm implementation. In this branch of the discipline learned in the abstract algorithm, regardless of the computer system or programming language used. Different algorithms can be applied to a problem with the same criteria. complexity of an algorithm is a measure of how much computational algorithms are needed to resolve the issue.Informally, an algorithm that can solve problems in a short time having low complexity, while an algorithm that takes a long time to resolve the problem has high complexity.
History of the term "algorithm" The word algorithm comes from the name of a mathematician latinisasi of Uzbekistan Al Khwarizmi (lived around the 9th century), as contained in his works in Latin translations of the 12th century "de numero Indorum Algorithmi". At first the word algorisma is a term that refers to the rules of arithmetic to solve numerical problems using Arabic numbers (actually from India, as written on the title above). In the 18 th century, the term evolved into an algorithm, which includes all procedures or a clear sequence of steps necessary to resolve a problem.
Algorithm TypesThere are various classification algorithms and each classification has its own reasons. One way to classify the types of algorithm is to consider the paradigms and methods used to design the algorithm. Some of the paradigm used in formulating an algorithm will be presented in this section. Each of these paradigms can be used in many different algorithms.
Divide and Conquer, a paradigm to divide large problems into problems of smaller ones. The division of this issue carried out continuously until it was the small problem that is easy to solve. In summary solve the whole problem by dividing a large problem and then solve the small problems that are formed.Dynamic programming, dynamic programming paradigm would be appropriate if used on a problem that contains a sub-optimal structure, and contains some of the issues that overlap.
This paradigm glance looks similar to the paradigm of Divide and Conquer, both trying to divide the problem into smaller sub-problems, but is intrinsically no different from the character of the problems faced. greedy method. A greedy algorithm is similar to a dynamic programming, the difference between the answers of the subproblems do not need to know in each stage and use the "greedy" what is seen best at the time.
0 comments:
Post a Comment