Algorithms for Searching, Sorting, and Indexing

  • 4.6
Approx. 34 hours to complete

Course Summary

Learn about searching, sorting, and indexing algorithms in this course. Gain a deep understanding of the theory behind these algorithms and how to implement them in practice.

Key Learning Points

  • Explore various searching and sorting algorithms
  • Learn about indexing and its importance in efficient data retrieval
  • Gain hands-on experience implementing these algorithms in code

Job Positions & Salaries of people who have taken this course might have

  • Software Engineer
    • USA: $85,000
    • India: ₹6,00,000
    • Spain: €35,000
  • Data Analyst
    • USA: $63,000
    • India: ₹4,50,000
    • Spain: €28,000
  • Machine Learning Engineer
    • USA: $118,000
    • India: ₹8,50,000
    • Spain: €52,000

Related Topics for further study


Learning Outcomes

  • Implement various searching and sorting algorithms in code
  • Understand the importance of indexing in efficient data retrieval
  • Apply algorithmic knowledge to optimize code performance

Prerequisites or good to have knowledge before taking this course

  • Basic understanding of programming concepts
  • Familiarity with a programming language such as Python or Java

Course Difficulty Level

Intermediate

Course Format

  • Online
  • Self-paced

Similar Courses

  • Algorithms, Part I
  • Data Structures and Algorithms

Related Education Paths


Related Books

Description

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.

Knowledge

  • 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

Outline

  • Basics of Algorithms Through Searching and Sorting
  • What is an Algorithm?
  • An Introduction Through the Insertion Sort Algorithm
  • Time and Space Complexity
  • Asymptotic Notation
  • Binary Search
  • Merge Sort Algorithm, Analysis and Proof of Correctness
  • Pitfalls and Logarithms
  • Important Prerequisites
  • Logistics: Textbook and Readings
  • CLRS Chapter 1
  • Overview of Module 1
  • CLRS Chapter 2
  • CLRS Chapter 3
  • Binary Search Lecture Slides
  • Jupyter Notebook on Binary Search
  • Notes on MergeSort
  • Insertion Sort and Running Times
  • Asymptotic Notation and Complexity
  • Binary Search
  • Mergesort Algorithm
  • Heaps and Hashtable Data Structures
  • A Simple Data Structure: The Dynamic Array
  • Heap, Min/Max-Heaps and Properties of Heaps
  • Heap Primitives: Bubble Up/Bubble Down
  • Priority Queues, Heapify, and Heapsort
  • Hashtables - Introduction
  • Overview of Module 2
  • CLRS Chapter 10, 10.1 (Optional)
  • CLRS Chapter 6.1 and 6.2
  • CLRS Chapter 6.3
  • CLRS Chapter 6.4 and 6.5
  • CLRS Chapter 11.1 and 11.2
  • Basics of Data Structures
  • Basics of Heap Data Structures
  • Bubble-Up/Bubble-Down, Insertion and Deletion Operations
  • Heapify, Priority Queues and Heapsort
  • Hashtables
  • Randomization: Quicksort, Quickselect, and Hashtables
  • Introduction to Randomization + Average Case Analysis + Recurrences
  • Partition and Quicksort Algorithm
  • Detailed Design of Partitioning Schemes
  • Analysis of Quicksort Algorithm
  • Quickselect Algorithm and its Applications
  • Selecting Hash Functions
  • Universal Hash Functions and Analysis
  • Overview of Module 3
  • CLRS Chapter 7.1
  • CLRS Chapter 7.1
  • CLRS Chapter 7.2 - 7.4
  • CLRS Chapter 9.1, 9.2
  • CLRS Chapter 11.3
  • Quicksort and Partition
  • Partition Schemes
  • Analysis of Quicksort
  • Quickselect Algorithm
  • Universal Hash Functions
  • Applications of Hashtables
  • Open Address Hashing
  • Perfect hashing and Cuckoo hashing
  • Bloom Filters and Analysis
  • Count-Min Sketching Using Hashing
  • String Matching Using Hashing
  • Overview of Module 4
  • CLRS 11.4
  • CLRS Chapter 11.5 (Perfect Hashing) and Slides with Scribbles
  • Bloom Filter: Slides
  • Count-Min Sketches Slides
  • Slides with Scribbles
  • Open Address Hashing

Summary of User Reviews

The Algorithms: Searching, Sorting, and Indexing course on Coursera has received positive reviews from users. Many users appreciated the course's comprehensive coverage of algorithms and its practical applications.

Key Aspect Users Liked About This Course

Comprehensive coverage of algorithms and practical applications

Pros from User Reviews

  • Great course for learning algorithms and computer science concepts
  • Excellent lectures and explanations
  • Good balance of theory and practical applications
  • Challenging assignments that help reinforce learning
  • Engaging and knowledgeable instructor

Cons from User Reviews

  • Course can be difficult for those without a strong math background
  • Assignments can be time-consuming
  • Some users found the quizzes to be too difficult
  • Occasional technical issues with the platform
  • Course may not be suitable for those looking for a quick introduction to algorithms
English
Available now
Approx. 34 hours to complete
Sriram Sankaranarayanan
University of Colorado Boulder
Coursera

Instructor

Share
Saved Course list
Cancel
Get Course Update
Computer Courses