Data structures and algorithms analysis -- new perspectives. Volume 1: Data structures based on linear relations (Q2184843)

From MaRDI portal
scientific article
Language Label Description Also known as
English
Data structures and algorithms analysis -- new perspectives. Volume 1: Data structures based on linear relations
scientific article

    Statements

    Data structures and algorithms analysis -- new perspectives. Volume 1: Data structures based on linear relations (English)
    0 references
    0 references
    0 references
    0 references
    0 references
    0 references
    0 references
    29 May 2020
    0 references
    This is a joint review of both volumes of this work. For Volume 2 see [Zbl 1455.68005]. A striking feature of these books is that they mostly consist of figures, tables, pseudocode and C source code with very little actual text. Algorithms and data structures are introduced by giving a high-level idea, pictures, pseudocode, then source code and examples. Discussions and exercises give a highly detailed treatment explaining why these two volumes only contain material that established textbooks cover in a few chapters. Despite this highly detailed approach, convincing arguments (let alone proofs) of correctness or sufficient complexity analysis of the algorithms are largely absent. Of course, from a mathematical point of view, this is disappointing. In my view, this makes the books unsuitable for computer science majors at good universities. Also the ``analysis'' in the title seems to be misnomer. The ``new perspectives'' is equally unclear to me since modern developments like parallel computing or modern programming languages are completely absent. Still, despite some further problems discussed below, the books might be useful for teaching some basics to students with poor mathematical background. A further problem with the content is that important concepts are missing. For example, although about half of the first volume talks about linked lists, only about two pages cover doubly-linked lists, without mentioning important features such as constant-time methods for deletion, moving items, or moving sublists. As another example, the preface stresses the importance of the relation between algorithms and real applications. Then the string chapter mentions the important application of web search. But what follows are descriptions of linear-time string search algorithms with no mention of index data structures that are essential to understand why web search is possible at all. An example for Volume 2 is Kruskal's algorithm, which is described using a Union-Find data structure using union-by-size but without path compression. No explanation is given why included edges are MST edges or why excluded edges are not. Another example is quicksort, where a simplistic version with deterministic pivot selection is described. Then it is falsely claimed (without explanation) that the running time is \(O(n \log n)\) only to state subsequently that the worst case is quadratic. The opportunity is missed to explain the difference between worst case and average case and to introduce a more robust randomized version. Further problems are the sometimes difficult to understand English, poor typography (in particular for formulas), no references, and a very short index that is thus of little use.
    0 references
    0 references
    0 references
    0 references
    0 references
    0 references
    0 references