Introduction to Algorithms A Comprehensive Guide for Beginners : Unlocking Computational Thinking

Discover the fundamentals and advanced concepts of algorithms with this comprehensive course. Learn about efficiency, types, design techniques, and real-world applications, and enhance your algorithmic knowledge. Key Features Basics to advanced algorithm design and applications, along with real-worl...

Descripción completa

Detalles Bibliográficos
Autor Corporativo: Cuantum Technologies, LLC., issuing body (issuing body)
Formato: Libro electrónico
Idioma:Inglés
Publicado: Birmingham : Packt Publishing, Limited 2024.
Materias:
Ver en Biblioteca Universitat Ramon Llull:https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009835439106719
Tabla de Contenidos:
  • Intro
  • Code Blocks Resource
  • Premium Customer Support
  • Who we are
  • Our Philosophy
  • Our Expertise
  • Introduction
  • Preface
  • Introduction to the Book
  • Who Should Read This Book
  • How to Use This Book
  • Chapter 1: Introduction to Algorithms
  • 1.1 What is an Algorithm?
  • 1.1.1 Characteristics of a Good Algorithm
  • 1.1.2 How Algorithms are Used
  • 1.1.3 Brief Summary and Some Points for Further Reflection
  • 1.2 Importance of Algorithms in Computer Science
  • 1.2.1 Algorithms Power Our Digital World
  • 1.2.2 Algorithms Drive Efficiency
  • 1.2.3 Algorithms Form the Basis of Advanced Fields
  • 1.2.4 The Future Implications and Advancements in Algorithms
  • 1.3 Fundamentals of Computational Thinking
  • 1.3.1 Decomposition
  • 1.3.2 Pattern Recognition
  • 1.3.3 Abstraction
  • 1.3.4 Algorithmic Thinking
  • 1.3.5 Debugging and Iteration
  • 1.4 Practice Problems
  • Problem 1: Password Generator
  • Problem 2: Calendar Events
  • Problem 3: Building a Pyramid
  • Problem 4: Text Compression
  • 1.5 Chapter Summary
  • Chapter 2: Pseudocode and Flowcharts
  • 2.1 Understanding Pseudocode
  • 2.1.1 Flexibility of Pseudocode
  • 2.2 Understanding Flowcharts
  • 2.3 Translating Real-World Problems into Pseudocode
  • 2.4 Practice Problems
  • Problem 1
  • Problem 2
  • Problem 3
  • Chapter 2 Summary
  • Chapter 3: Algorithm Efficiency
  • 3.1 Understanding Time Complexity
  • 3.1.1 Big O notation
  • 3.1.2 Difference between the best-case, average-case, and worst-case time complexity
  • 3.2 Understanding Space Complexity
  • 3.2.1 Caching/Memoization
  • 3.3 Introduction to Big O Notation
  • 3.3.1 What is Big O Notation?
  • 3.3.2 Common Types of Time Complexities
  • 3.3.3 Asymptotic Analysis
  • 3.4 Practice Problems
  • Linear Search:
  • Sum of Elements:
  • Find Duplicate:
  • Bubble Sort:
  • Chapter 3 Summary
  • Chapter 4: Basic Algorithm Types
  • 4.1 Divide and Conquer Algorithms
  • 4.2 Greedy Algorithms
  • 4.2.1 What is a Greedy Algorithm?
  • 4.2.2 Coin Change Problem
  • 4.3 Dynamic Programming Algorithms
  • 4.4 Recursive Algorithms
  • 4.4.1 Tail Recursion
  • 4.5 Practice Problems
  • Problem 1: Binary Search (Divide and Conquer)
  • Problem 2: Coin Change (Greedy Algorithm)
  • Problem 3: Fibonacci Series (Dynamic Programming)
  • Problem 4: Sum of Natural Numbers (Recursive Algorithm)
  • Problem 5: QuickSort (Divide and Conquer)
  • Problem 6: Implementing a Stack using Recursion (Recursive Algorithm)
  • Chapter 4 Summary
  • Chapter 5: Search Algorithms
  • 5.1 Linear Search
  • 5.1.1 Limitations of Linear Search
  • 5.2: Binary Search
  • 5.3 Hashing and Hash Tables
  • 5.3.1 Collisions
  • 5.4 Practice Problems
  • Problem 1: Linear Search
  • Problem 2: Binary Search
  • Problem 3: Hashing
  • Problem 4: Binary Search vs Linear Search
  • Chapter 5 Summary
  • Chapter 6: Sort Algorithms
  • 6.1 Bubble Sort
  • 6.1.1 When and Why to Use or Not to Use Bubble Sort
  • 6.2 Selection Sort