My Account Log in

1 option

Efficient Algorithm Design : Unlock the Power of Algorithms to Optimize Computer Programming.

O'Reilly Online Learning: Academic/Public Library Edition Available online

View online
Format:
Book
Author/Creator:
Makrehchi, Masoud.
Language:
English
Subjects (All):
Computer algorithms.
Physical Description:
1 online resource (360 p.)
Place of Publication:
Birmingham, UK : Packt Publishing, Limited, 2024.
Summary:
Master advanced algorithm design techniques to tackle complex programming challenges and optimize application performance Key Features Develop advanced algorithm design skills to solve modern computational problems Learn state-of-the-art techniques to deepen your understanding of complex algorithms Apply your skills to real-world scenarios, enhancing your expertise in today's tech landscape Purchase of the print or Kindle book includes a free PDF eBook Book Description Efficient Algorithm Design redefines algorithms, tracing the evolution of computer science as a discipline bridging natural science and mathematics. Author Masoud Makrehchi, PhD, with his extensive experience in delivering publications and presentations, explores the duality of computers as mortal hardware and immortal algorithms. The book guides you through essential aspects of algorithm design and analysis, including proving correctness and the importance of repetition and loops. This groundwork sets the stage for exploring algorithm complexity, with practical exercises in design and analysis using sorting and search as examples. Each chapter delves into critical topics such as recursion and dynamic programming, reinforced with practical examples and exercises that link theory with real-world applications. What sets this book apart is its focus on the practical application of algorithm design and analysis, equipping you to solve real programming challenges effectively. By the end of this book, you'll have a deep understanding of algorithmic foundations and gain proficiency in designing efficient algorithms, empowering you to develop more robust and optimized software solutions. What you will learn Gain skills in advanced algorithm design for better problem-solving Understand algorithm correctness and complexity for robust software Apply theoretical concepts to real-world scenarios for practical solutions Master sorting and search algorithms, understanding their synergy Explore recursion and recurrence for complex algorithmic structures Leverage dynamic programming to optimize algorithms Grasp the impact of data structures on algorithm efficiency and design Who this book is for If you're a software engineer, computer scientist, or a student in a related field looking to deepen your understanding of algorithm design and analysis, this book is tailored for you. A foundation in programming and a grasp of basic mathematical concepts is recommended. It's an ideal resource for those already familiar with the basics of algorithms who want to explore more advanced topics. Data scientists and AI developers will find this book invaluable for enhancing their algorithmic approaches in practical applications.
Contents:
Cover
Title Page
Copyright and Credits
Contributors
Table of Contents
Preface
Part 1: Foundations of Algorithm Analysis
Chapter 1: Introduction to Algorithm Analysis
Understanding algorithms and problem-solving
The rationale for algorithm analysis
The dual dimensions of algorithm analysis
efficiency and correctness
Summary
Chapter 2: Mathematical Induction and Loop Invariant for Algorithm Correctness
Mathematical induction
Loop invariants for the correctness of algorithms
References and further reading
Chapter 3: Rate of Growth for Complexity Analysis
Unpacking the rate of growth in algorithms
Constant growth
Sub-linear growth
Linear growth
Non-linear growth
Asymptotic notations
Simplification rules in asymptotic notation
Asymptotic bounds
Asymptotic upper bound (O notation)
Asymptotic lower bound (​ ​-notation)
Asymptotic tight bound (​ ​-notation)
Confronting the unsolvable NP-hard problems
Complexities of NP, NP-complete, and NP-hard
References and further reading
Chapter 4: Recursion and Recurrence Functions
Recursive algorithms
The basics of recursion
Types of recursion
Recurrence functions
Subtractive recurrence functions
Divide-and-conquer recurrence functions
Unfolding recurrence functions
Chapter 5: Solving Recurrence Functions
The substitution method
Iteration approach or unrolling the recurrence
Guessing and induction approach
Variable change approach
Recursion tree as a visualization technique
The master theorem
Case 1
dominance of recursive calls or leaf-heavy recursion trees
Case 2
balanced growth or balanced recursion trees
Case 3
dominance of non-recursive work or root-heavy recursion trees
Modified master theorem to solve subtracting recurrence functions
Master theorem limitations
Alternative approaches
Beyond the master theorem
the Akra-Bazzi method
Why does it work? Intuition behind Akra-Bazzi
Part 2: Deep Dive in Algorithms
Chapter 6: Sorting Algorithms
The taxonomy of sorting algorithms
Comparison
Recursion
Adaptability
Inversion
Memory usage
Iterative sorting algorithms
Bubble sort
Selection sort
Insertion sort
Recursive sorting algorithms
Merge sort
Quick sort
Non-comparison-based sorting
Counting sort
Radix sort
Bucket sort
Chapter 7: Search Algorithms
Properties of search algorithms
Linear-time and logarithmic search algorithms
Linear or sequential search
Sub-linear search
Hashing
Hash functions
Constant time search using hashing
Chapter 8: Symbiotic Relationship between Sort and Search
Notes:
OCLC-licensed vendor bibliographic record.
ISBN:
9781835886823
1835886825
OCLC:
1463082322

The Penn Libraries is committed to describing library materials using current, accurate, and responsible language. If you discover outdated or inaccurate language, please fill out this feedback form to report it and suggest alternative language.

Find

Home Release notes

My Account

Shelf Request an item Bookmarks Fines and fees Settings

Guides

Using the Find catalog Using Articles+ Using your account