返回到 I/O-efficient algorithms
28DIGITAL

I/O-efficient algorithms

I/O-efficient algorithms, also known as external memory algorithms or cache-oblivious algorithms, are a class of algorithms designed to efficiently process data that is too large to fit entirely in the main memory (RAM) of a computer. These algorithms are particularly useful when dealing with massive datasets, such as those found in large-scale data processing, database management, and file systems. Operations on data become more expensive when the data item is located higher in the memory hierarchy. An operation on data in CPU registers is roughly a million times faster than an operation on a data item that is located in external memory that needs to be fetched first. These data fetches are also called I/O operations and need to be taken into account during the design of an algorithm. The goal of this course is to become familiar with important algorithmic concepts and techniques needed to effectively deal with such problems. We will work with a simplified memory hierarchy, but the notions extend naturally to more realistic models. Prerequisites: In order to successfully take this course, you should already have a basic knowledge of algorithms and mathematics. Here's a short list of what you are supposed to know: - O-notation, Ω-notation, Θ-notation; how to analyze algorithms - Basic calculus: manipulating summations, solving recurrences, working with logarithms, etc. - Basic probability theory: events, probability distributions, random variables, expected values etc. - Basic data structures: linked lists, stacks, queues, heaps - (Balanced) binary search trees - Basic sorting algorithms, for example MergeSort, InsertionSort, QuickSort - Graph terminology, representations of graphs (adjacency lists and adjacency matrix), basic graph algorithms (BFS, DFS, topological sort, shortest paths) The material for this course is based on the course notes that can be found under the resources tab. We will not cover everything from the course notes. The course notes are there both for students who did not fully understand the lectures as well as for students who would like to dive deeper into the topics. The video lectures contain a few very minor mistakes. A list of these mistakes can be found under resources. If you think you found an error, report a problem by clicking the square flag at the bottom of the lecture or quiz where you found the error.

状态:Data Structures
状态:Theoretical Computer Science
高级设置课程小时

精选评论

CV

5.0评论日期:May 8, 2022

T​he course is really good and the course material is also amazing. I highly reccomend it provided you have an interest in this specialization.

NC

5.0评论日期:Nov 5, 2019

Everything was clearly explained and the questions were quite intuitive and checking my knowledge. More examples for different scenarios too would help us a lot to learn more.

HK

5.0评论日期:May 16, 2024

Excellent course. The lectures are of top quality. The quizzes are well thought out.

YZ

5.0评论日期:Sep 28, 2020

Really like the course. Though it's difficult and challenging, I managed to understand the concept. I will keep practicing.

所有审阅

显示:15/15

Nicholas Pun
4.0
评论日期:Jun 24, 2020
David Mankins
5.0
评论日期:Jun 17, 2023
Natarajan C
5.0
评论日期:Nov 6, 2019
CHARISIOS VOGIATZIS
5.0
评论日期:May 9, 2022
Yucheng Zhou
5.0
评论日期:Sep 29, 2020
Hari K
5.0
评论日期:May 17, 2024
Jörg Seebohn
5.0
评论日期:Aug 22, 2022
周柏宇
5.0
评论日期:Jan 31, 2020
vignesh prabhu
5.0
评论日期:Jul 3, 2020
Sergio Garofoli
5.0
评论日期:Apr 27, 2020
fredy albornoz
5.0
评论日期:Jul 6, 2022
Kota Varun Kumar 19BLC1086
5.0
评论日期:May 26, 2021
Никулин Олег Алексеевич
4.0
评论日期:Aug 30, 2020
Sinha Aman
4.0
评论日期:Aug 25, 2020
Raghu Venkatesh
3.0
评论日期:Dec 1, 2021