Lecture

Hashing II

Continuing from Hashing I, this module delves deeper into advanced hashing methods and their applications. Students explore techniques such as open addressing and chaining, highlighting their importance in real-world scenarios.


Course Lectures
  • Analysis of Algorithms
    Charles E. Leiserson

    This module focuses on analyzing algorithms, helping students understand the efficiency of different approaches. The importance of measuring performance through various metrics is emphasized, allowing for effective decision-making in algorithm selection.

  • This module introduces asymptotic notation, providing essential tools to describe the performance of algorithms. Students learn to solve recurrences, gaining insights into algorithm behavior and efficiency in different scenarios.

  • Divide and Conquer
    Erik Demaine

    Divide and conquer is a fundamental strategy in algorithm design. This module covers the principles and applications of this approach, teaching students how to break problems down into smaller, manageable parts for efficient solutions.

  • Quicksort
    Charles E. Leiserson

    Quicksort is a highly efficient sorting algorithm that employs the divide and conquer strategy. This module explores its mechanics, performance analysis, and use cases, helping students understand why it is widely used in practice.

  • This module investigates sorting lower bounds and linear-time sorting algorithms. It covers theoretical limits of sorting efficiency and examines algorithms like counting sort and radix sort, illustrating their practical applications.

  • Order Statistics
    Erik Demaine

    This module focuses on order statistics, teaching students how to find the kth smallest or largest elements efficiently. Various algorithms, including randomized approaches, are discussed along with their applications.

  • Hashing I
    Charles E. Leiserson

    This module introduces hashing techniques, examining their design and implementation. Students learn about hash functions, collision resolution strategies, and the significance of hashing in data retrieval and storage.

  • Hashing II
    Charles E. Leiserson

    Continuing from Hashing I, this module delves deeper into advanced hashing methods and their applications. Students explore techniques such as open addressing and chaining, highlighting their importance in real-world scenarios.

  • This module covers randomly built binary search trees, highlighting their probabilistic nature. Students learn how these trees provide efficient operations on average and the concepts behind randomized algorithms.

  • Balanced Search Trees
    Erik Demaine

    This module introduces balanced search trees, focusing on their structure and mechanics. Students explore various types of balanced trees, such as AVL and Red-Black trees, and their significance in maintaining efficiency.

  • Skip Lists
    Erik Demaine

    This module introduces skip lists, a probabilistic data structure that allows for fast search, insertion, and deletion. Students learn how skip lists function and their advantages in certain applications.

  • Competitive Analysis
    Charles E. Leiserson

    This module covers competitive analysis, teaching students how to evaluate algorithms based on their performance relative to others. Techniques for comparing efficiency and effectiveness in various scenarios are discussed.

  • Dynamic Programming
    Charles E. Leiserson

    Dynamic programming is a powerful technique for solving complex problems by breaking them down into simpler subproblems. This module emphasizes its applications in optimization and decision-making processes.

  • Greedy Algorithms (and Graphs)
    Charles E. Leiserson

    This module explores greedy algorithms and their applications in graph theory. Students learn how greedy strategies can lead to optimal solutions in various contexts, including network design and resource allocation.

  • Shortest Paths I
    Erik Demaine

    This module covers shortest path algorithms, focusing on various techniques to determine the shortest route in graphs. Students analyze methods such as Dijkstra's and Bellman-Ford algorithms, exploring their applications.

  • Shortest Paths II
    Erik Demaine

    This module continues the exploration of shortest paths, introducing advanced techniques and applications in complex graphs. Students learn about algorithms suited for specific scenarios and their impact on efficiency.

  • Shortest Paths III
    Charles E. Leiserson

    This module further investigates shortest path algorithms, emphasizing more complex scenarios and specialized techniques. Students analyze how to tackle challenging graph structures efficiently.

  • Advanced Topics 1
    Charles E. Leiserson

    This module introduces advanced topics in algorithms, exploring cutting-edge methods and their implications in contemporary computational challenges. Students will engage in discussions surrounding innovation in algorithm design.

  • Advanced Topics 2
    Charles E. Leiserson

    This module continues the exploration of advanced topics, focusing on emerging trends in algorithm research. Students engage with recent developments and their potential impact on future applications.

  • Advanced Topics 3
    Charles E. Leiserson

    This module further investigates advanced topics in algorithms, examining niche areas of research and their implications. Students analyze specialized algorithms and their applications in contemporary problems.

  • Advanced Topics 4
    Charles E. Leiserson

    This final module in advanced topics presents discussions on theoretical foundations and practical implementations of cutting-edge algorithms. Students are encouraged to innovate and explore new algorithmic solutions.