University of Colorado Boulder
Algorithms for Searching, Sorting, and Indexing
University of Colorado Boulder

Algorithms for Searching, Sorting, and Indexing

This course is part of Foundations of Data Structures and Algorithms Specialization

Taught in English

Some content may not be translated

35,581 already enrolled

Included with Coursera Plus

Course

Gain insight into a topic and learn the fundamentals

4.7

(314 reviews)

|

93%

Intermediate level

Recommended experience

35 hours (approximately)
Flexible schedule
Learn at your own pace
Progress towards a degree

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

Details to know

Shareable certificate

Add to your LinkedIn profile

Assessments

15 quizzes

Course

Gain insight into a topic and learn the fundamentals

4.7

(314 reviews)

|

93%

Intermediate level

Recommended experience

35 hours (approximately)
Flexible schedule
Learn at your own pace
Progress towards a degree

See how employees at top companies are mastering in-demand skills

Placeholder

Build your subject-matter expertise

This course is part of the Foundations of Data Structures and Algorithms Specialization
When you enroll in this course, you'll also be enrolled in this Specialization.
  • 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
Placeholder
Placeholder

Earn a career certificate

Add this credential to your LinkedIn profile, resume, or CV

Share it on social media and in your performance review

Placeholder

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 quizzes1 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 quizzes1 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 quizzes1 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 quiz1 programming assignment

Instructor

Instructor ratings
4.7 (113 ratings)
Sriram Sankaranarayanan
University of Colorado Boulder
5 Courses52,741 learners

Offered by

Recommended if you're interested in Algorithms

Why people choose Coursera for their career

Felipe M.
Learner since 2018
"To be able to take courses at my own pace and rhythm has been an amazing experience. I can learn whenever it fits my schedule and mood."
Jennifer J.
Learner since 2020
"I directly applied the concepts and skills I learned from my courses to an exciting new project at work."
Larry W.
Learner since 2021
"When I need courses on topics that my university doesn't offer, Coursera is one of the best places to go."
Chaitanya A.
"Learning isn't just about being better at your job: it's so much more than that. Coursera allows me to learn without limits."

Learner reviews

Showing 3 of 314

4.7

314 reviews

  • 5 stars

    81.38%

  • 4 stars

    11.67%

  • 3 stars

    3.15%

  • 2 stars

    1.57%

  • 1 star

    2.20%

WW
5

Reviewed on Oct 15, 2021

SS
5

Reviewed on Sep 12, 2023

SK
5

Reviewed on Oct 2, 2021

New to Algorithms? Start here.

Placeholder

Open new doors with Coursera Plus

Unlimited access to 7,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

Frequently asked questions