Welcome to the Data Structures and Algorithms course! Dive into the essential principles and techniques that form the backbone of computer science and software development. This comprehensive course explores the efficient organization, storage, and manipulation of data using various data structures such as arrays, linked lists, stacks, queues, hash tables, trees, and graphs. You will learn how to implement these structures in your code, optimize their performance, and solve complex computational problems through algorithm design and analysis.

Data Structures and Algorithms
访问权限由 New York State Department of Labor 提供
您将学到什么
Implement and manipulate data structures (arrays, linked lists, stacks, queues) for efficient data management in software development.
Apply sorting algorithms (quicksort, mergesort, insertion sort) to optimize data organization and retrieval for solving real-world problems.
Design and analyze graph algorithms (BFS, DFS, shortest paths) to address complex network-related challenges in data management.
Utilize tree structures (binary trees, AVL trees) and hash tables for rapid data access and storage, enhancing computational efficiency.
您将获得的技能
要了解的详细信息

添加到您的领英档案
140 项作业
了解顶级公司的员工如何掌握热门技能

该课程共有10个模块
In this module, you will learn how to measure the efficiency of algorithms at design time. More specifically, you will learn about asymptotic notation to represent the efficiency of algorithms in terms of the time and space utilized by your algorithms. You will also revisit C fundamentals with the help of a few basic programs.
涵盖的内容
22个视频5篇阅读材料8个作业1个非评分实验室
In this module, you will learn about linked lists, stacks, and queues, along with their applications to various domains of computing. You will learn to apply them to construct efficient algorithms for various problems. You will also be able to implement these data structures in C.
涵盖的内容
27个视频8篇阅读材料17个作业1个讨论话题3个非评分实验室
In this module, you will learn about top-down recursive algorithms, with a specific discussion on insertion sort and merge sort algorithms. Specifically, you will understand the recursive and iterative versions of these sorting algorithms along with their derivations of time and space complexities. You will also implement these algorithms on large tuple data read from files and compare the running time of these algorithms. Additionally, you will learn to implement linear and binary search algorithms over arrays.
涵盖的内容
23个视频8篇阅读材料18个作业1个讨论话题3个非评分实验室
In this module, you will learn about the quick sort algorithm, implement it and analyze its time complexity. You will additionally study a summary of comparison-based sorting algorithms, along with their lower bound time complexity. You will also learn non-comparison-based sorting algorithms, such as bucket sort and radix sort, along with their complexity analysis and implementation.
涵盖的内容
14个视频5篇阅读材料12个作业1个编程作业1个讨论话题2个非评分实验室
In this module, you will learn about dictionary ADT s, hash tables, and binary trees. You will understand various hashing schemes, such as linear chaining and open addressing, and analyze their performance for large data. You will also gain insights into binary trees, tree traversals, and their implementations.
涵盖的内容
16个视频6篇阅读材料14个作业1个讨论话题2个非评分实验室
In this module, you will learn to use binary search trees and AVL trees as dictionaries. You will learn to implement them and store large tuple data. You would also be able to compare the search performance of both the trees averaged over large datasets. Additionally, you would be able to derive the best and worst-case complexities of search, insert, and delete in binary search trees (BST s) and AVL trees.
涵盖的内容
22个视频5篇阅读材料18个作业1个讨论话题1个非评分实验室
In this module, you will learn about priority queues abstract data type (ADT ) and various kinds of tries. You will also learn to implement heaps for priority queues and use them to find efficient tries for file compression. Additionally, you will learn about tries, compressed tries, and suffix trees, along with their applications to various domains of computer science.
涵盖的内容
20个视频6篇阅读材料15个作业1个编程作业1个讨论话题2个非评分实验室
In this module, you will learn the fundamentals of graphs, the data structures used to represent them, and the breadth-first graph traversal algorithm. You will learn to use the breadth-first graph traversal to solve a few computational problems related to graphs, such as checking for bipartite graphs and counting the connected components. You will also be able to implement breadth-first traversal efficiently using the appropriate data structure.
涵盖的内容
17个视频4篇阅读材料14个作业1个讨论话题1个非评分实验室
In this module, you will learn about depth-first traversal in graphs and its applications to graph-related problems. You will learn to analyze its complexity and implement it efficiently. You will understand the minimum spanning trees (MST) problem in weighted graphs and study Kruskal’s algorithm that computes MST from a weighted graph. You will additionally learn to optimize the time complexity of Kruskal’s algorithm using the union-find data structure and implement it.
涵盖的内容
19个视频6篇阅读材料15个作业1个讨论话题1个非评分实验室
In this module, you will learn about Prim’s algorithm for computing the minimum spanning tree in a weighted graph. Additionally, you will also learn about Dijkstra’s algorithm to compute “single-source shortest paths.” You will also learn about the Bellman-Ford algorithm to compute “single-source shortest paths” in graphs with negative edge weights. You will also be able to implement these algorithms and analyze their time complexities.
涵盖的内容
14个视频6篇阅读材料9个作业1个非评分实验室
位教师

人们为什么选择 Coursera 来帮助自己实现职业发展

Felipe M.

Jennifer J.

Larry W.

Chaitanya A.
从 Computer Science 浏览更多内容

University of California San Diego





