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.
Algorithms for Searching, Sorting, and Indexing
This course is part of Foundations of Data Structures and Algorithms Specialization
Instructor: Sriram Sankaranarayanan
Sponsored by Mojatu Foundation
48,669 already enrolled
(410 reviews)
Recommended experience
What you'll learn
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
Skills you'll gain
Details to know
Add to your LinkedIn profile
15 assignments
See how employees at top companies are mastering in-demand skills
Build your subject-matter expertise
- Learn new concepts from industry experts
- Gain a foundational understanding of a subject or tool
- Develop job-relevant skills with hands-on projects
- Earn a shareable career certificate
Earn a career certificate
Add this credential to your LinkedIn profile, resume, or CV
Share it on social media and in your performance review
There are 4 modules in this course
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.
What's included
7 videos12 readings4 assignments1 programming assignment1 discussion prompt
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.
What's included
5 videos6 readings5 assignments1 programming assignment
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.
What's included
7 videos6 readings5 assignments1 programming assignment
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.
What's included
5 videos6 readings1 assignment1 programming assignment
Instructor
Offered by
Why people choose Coursera for their career
Learner reviews
410 reviews
- 5 stars
79.22%
- 4 stars
13.52%
- 3 stars
3.38%
- 2 stars
1.44%
- 1 star
2.41%
Showing 3 of 410
Reviewed on Oct 2, 2021
Well laid out course which is both concise and has elaborate assignments which help in learning the concepts well. Many thanks to the professor for his effort.
Reviewed on Oct 15, 2021
Instructor was great. Exercises in Jupyter were awesome.
Reviewed on Nov 15, 2023
I like the informative content and assignments, the assignments are re not overly challenging but rather enlightening.
Recommended if you're interested in Computer Science
University of Colorado Boulder
University of Colorado Boulder
University of California, Davis
Google Cloud
Open new doors with Coursera Plus
Unlimited access to 10,000+ world-class courses, hands-on projects, and job-ready certificate programs - all included in your subscription
Advance your career with an online degree
Earn a degree from world-class universities - 100% online
Join over 3,400 global companies that choose Coursera for Business
Upskill your employees to excel in the digital economy