A Practical Introduction to Data Structures and Algorithm Analysis Third Edition (Java Version)

Authors

Editor E-Repository FTI UWGM

Synopsis

We study data structures so that we can learn to write more efficient programs. But

why must programs be efficient when new computers are faster every year? The

reason is that our ambitions grow with our capabilities. Instead of rendering effi-

ciency needs obsolete, the modern revolution in computing power and storage ca-

pability merely raises the efficiency stakes as we computerize more complex tasks.

The quest for program efficiency need not and should not conflict with sound

design and clear coding. Creating efficient programs has little to do with “program-

ming tricks” but rather is based on good organization of information and good al-

gorithms. A programmer who has not mastered the basic principles of clear design

is not likely to write efficient programs. Conversely, “software engineering” cannot

be used as an excuse to justify inefficient performance. Generality in design can

and should be achieved without sacrificing performance, but this can only be done

if the designer understands how to measure performance and does so as an integral

part of the design and implementation process. Most computer science curricula

recognize that good programming skills begin with a strong emphasis on funda-

mental software engineering principles. Then, once a programmer has learned the

principles of clear program design and implementation, the next step is to study the

effects of data organization and algorithms on program efficiency.

Published

July 16, 2025

Series