1 Analyzing Algorithms and Problems: Principles and Examples 1.1 Introduction 1.2 Java as an Algorithm Language 1.3 Mathematical Background 1.4 Analyzing Algorithms and Problems 1.5 Classifying Functions by Their Asymptotic Growth Rates 1.6 Searching an Ordered Array } 17