Название: Design and Analysis of Computer Algorithms Автор: Smartest Library Издательство: Smartest Library Год: 2020 Страниц: 393 Язык: английский Формат: pdf, epub Размер: 10.1 MB
This lecture note discusses the approaches to designing optimization algorithms, including dynamic programming and greedy algorithms, graph algorithms, minimum spanning trees, shortest paths, and network flows. Also it briefly discusses algorithmic problems arising from geometric settings, that is, computational geometry.
What is an algorithm? Our text defines an algorithm to be any well-defined computational procedure that takes some values as input and produces some values as output. Like a cooking recipe, an algorithm provides a step-by-step method for solving a computational problem. Unlike programs, algorithms are not dependent on a particular programming language, machine, system, or compiler. They are mathematical entities, which can be thought of as running on some sort of idealized computer with an infinite random access memory and an unlimited word size. Algorithm design is all about the mathematical theory behind the design of good programs.
Why study algorithm design? Programming is a very complex task, and there are a number of aspects of program- ming that make it so complex. The first is that most programming projects are very large, requiring the coor- dinated efforts of many people. (This is the topic a course like software engineering.) The next is that many programming projects involve storing and accessing large quantities of data efficiently. (This is the topic of courses on data structures and databases.) The last is that many programming projects involve solving complex computational problems, for which simplistic or naive solutions may not be efficient enough. The complex problems may involve numerical data (the subject of courses on numerical analysis), but often they involve discrete data. This is where the topic of algorithm design and analysis is important.
Скачать Design and Analysis of Computer Algorithms