This course covers basics of algorithm design and analysis, as well as algorithms for sorting arrays, data structures such as priority queues, hash functions, and applications such as Bloom filters.
本課程是 Data Science Foundations: Data Structures and Algorithms 專項課程 專項課程的一部分
課程信息
Calculus: derivatives and integrals. Probability theory: distributions, expectations, and moments. Some programming experience with Python.
您將學到的內容有
Explain fundamental concepts for algorithmic searching and sorting
Describe heap data structures and analyze heap components, such as arrays and priority queues
Design basic algorithms to implement sorting, selection, and hash functions in heap data structures
您將獲得的技能
- Analysis of Algorithms
- Hashtables
- Algorithm Design
- Python Programming
- Data Structure Design
Calculus: derivatives and integrals. Probability theory: distributions, expectations, and moments. Some programming experience with Python.
提供方

科罗拉多大学波德分校
CU-Boulder is a dynamic community of scholars and learners on one of the most spectacular college campuses in the country. As one of 34 U.S. public institutions in the prestigious Association of American Universities (AAU), we have a proud tradition of academic excellence, with five Nobel laureates and more than 50 members of prestigious academic academies.
立即開始攻讀碩士學位
授課大綱 - 您將從這門課程中學到什麼
Basics of Algorithms Through Searching and Sorting
In this module the student will learn the very basics of algorithms through three examples: insertion sort (sort an array in ascending/descending order); binary search: search whether an element is present in a sorted array and if yes, find its index; and merge sort (a faster method for sorting an array). Through these algorithms the student will be introduced to the analysis of algorithms -- i.e, proving that the algorithm is correct for the task it has been designed for and establishing a bound on how the time taken to execute the algorithm grows as a function of input. The student is also exposed to the notion of a faster algorithm and asymptotic complexity through the O, big-Omega and big-Theta notations.
Heaps and Hashtable Data Structures
In this module, the student will learn about the basics of data structures that organize data to make certain types of operations faster. The module starts with a broad introduction to data structures and talks about some simple data structures such as first-in first out queues and last-in first out stack. Next, we introduce the heap data structure and the basic properties of heaps. This is followed by algorithms for insertion, deletion and finding the minimum element of a heap along with their time complexities. Finally, we will study the priority queue data structure and showcase some applications.
Randomization: Quicksort, Quickselect, and Hashtables
We will go through the quicksort and quickselect algorithms for sorting and selecting the kth smallest element in an array efficiently. This will also be an introduction to the role of randomization in algorithm design. Next, we will study hashtables: a highly useful data structure that allows for efficient search and retrieval from large amounts of data. We will learn about the basic principles of hash-table and operations on hashtables.
Applications of Hashtables
In this module, we will learn randomized pivot selection for quicksort and quickselect. We will learn how to analyze the complexity of the randomized quicksort/quickselect algorithms. We will learn open address hashing: a technique that simplifies hashtable design. Next we will study the design of hash functions and their analysis. Finally, we present and analyze Bloom filters that are used in various applications such as querying streaming data and counting.
審閱
- 5 stars83.95%
- 4 stars10.16%
- 3 stars2.13%
- 2 stars1.06%
- 1 star2.67%
來自ALGORITHMS FOR SEARCHING, SORTING, AND INDEXING的熱門評論
Very engaging and clear lessons and quizzes. There're only some typos but they don't hinder the learning process
this is the best course on data structures that i have found! Pr. Sriram Sankaranarayanan thank you! if i was a multi-billionaire i would definitely donate a check to you for this wonderful course :)
The lectures are delivered with just the right amount of math, intuition and examples.
The lectures were very informative and I learned a lot
關於 Data Science Foundations: Data Structures and Algorithms 專項課程
Building fast and highly performant data science applications requires an intimate knowledge of how data can be organized in a computer and how to efficiently perform operations such as sorting, searching, and indexing. This course will teach the fundamentals of data structures and algorithms with a focus on data science applications. This specialization is targeted towards learners who are broadly interested in programming applications that process large amounts of data (expertise in data science is not required), and are familiar with the basics of programming in python. We will learn about various data structures including arrays, hash-tables, heaps, trees and graphs along with algorithms including sorting, searching, traversal and shortest path algorithms.

常見問題
我什么时候能够访问课程视频和作业?
我订阅此专项课程后会得到什么?
有助学金吗?
還有其他問題嗎?請訪問 學生幫助中心。