Skip to main content

1984 | Buch

Data Structures and Algorithms 1

Sorting and Searching

verfasst von: Prof. Dr. Kurt Mehlhorn

Verlag: Springer Berlin Heidelberg

Buchreihe : Monographs in Theoretical Computer Science. An EATCS Series

insite
SUCHEN

Über dieses Buch

The design and analysis of data structures and efficient algorithms has gained considerable importance in recent years. The concept of "algorithm" is central in computer science, and "efficiency" is central in the world of money. I have organized the material in three volumes and nine chapters. Vol. 1: Sorting and Searching (chapters I to III) Vol. 2: Graph Algorithms and NP-completeness (chapters IV to VI) Vol. 3: Multi-dimensional Searching and Computational G- metry (chapters VII and VIII) Volumes 2 and 3 have volume 1 as a common basis but are indepen­ dent from each other. Most of volumes 2 and 3 can be understood without knowing volume 1 in detail. A general kowledge of algorith­ mic principles as laid out in chapter 1 or in many other books on algorithms and data structures suffices for most parts of volumes 2 and 3. The specific prerequisites for volumes 2 and 3 are listed in the prefaces to these volumes. In all three volumes we present and analyse many important efficient algorithms for the fundamental computa­ tional problems in the area. Efficiency is measured by the running time on a realistic model of a computing machine which we present in chapter I. Most of the algorithms presented are very recent inven­ tions; after all computer science is a very young field. There are hardly any theorems in this book which are older than 20 years and at least fifty percent of the material is younger than 10 years.

Inhaltsverzeichnis

Frontmatter
I. Foundations
Abstract
We use computer algorithms to solve problems, e.g. to compute the maximum of a set of real numbers or to compute the product of two integers. A problem P consists of infinitely problem instances. An instance of the maximum problem is e.g. to compute the maximum of the following set of 5 numbers 2,7,3,9,8. An instance of the multiplication problem is e.g. to compute the product of 257 and 123. We associate with every problem instance p ∈ P a natural number g(p), its size. Sometimes, size will be a tuple of natural numbers; e.g. we measure the size of a graph by a pair consisting of the number of nodes and the number of edges. In the maximum problem we can define size as the cardinality of the input set (5 in our example), in the multiplication problem we can define size as the sum of the lengths of the decimal representations of the factors (6 in our example). Although the definition of size is arbitrary, there is usually a natural choice.
Kurt Mehlhorn
II. Sorting
Abstract
Sorting a set with respect to some ordering is a very frequently occuring problem. IBM estimates that about 25% of total computing time is spent on sorting in commercial computing centers.
Kurt Mehlhorn
III. Sets
Abstract
Many algorithms manipulate sets. We consider some typical examples. A compiler uses a symboltable to keep track of the identifiers which are used in the program. An identifier together with relevant information (e.g. type, scope, address,…) is entered into the symbol- table when its declaration is processed by the compiler. Applied occurences of the same identifier refer to the defining occurence; the compiler has to access the symboltable and to look up the relevant information. More abstractly, a compiler deals with a set ST of objects consisting of a name (key) and associated information. Two kinds of operations are performed on the set ST. New objects (x,I) are added to set ST, i.e. ST is replaced by ST U {(x,I)z, and the objects are accessed via their key, i.e. given an identifier x we want to find I such that (x,I) € ST. In most programming languages identifiers are strings of letters and digits of some bounded length, say at most length 6. Then the number of possible identifiers is 6 9 (26 + 10)6 ∈ 109; in every program only a small subset of the set of all possible identifiers is used. Set ST is small compared to the very large universe of all possible identifiers.
Kurt Mehlhorn
IX. Algorithmic Paradigms
Abstract
There are basically two ways for structuring a book on data structures and algorithms: problem or paradigm oriented. We have mostly followed the first alternative because it allows for a more concise treatment. However, at certain occassions (e.g. section VIII.4 on the sweep paradigm in computational geometry) we have also followed the second approach. In this last chapter of the book we attempt to review the entire book from the paradigm oriented point of view.
Kurt Mehlhorn
Backmatter
Metadaten
Titel
Data Structures and Algorithms 1
verfasst von
Prof. Dr. Kurt Mehlhorn
Copyright-Jahr
1984
Verlag
Springer Berlin Heidelberg
Electronic ISBN
978-3-642-69672-5
Print ISBN
978-3-642-69674-9
DOI
https://doi.org/10.1007/978-3-642-69672-5