Skip to content

My solutions for the course "Data Structures and Algorithms Specialization."

Notifications You must be signed in to change notification settings

lionlai1989/data-structures-and-algorithms

Repository files navigation

Data Structures and Algorithms

This repository hosts materials for the course, Data Structures and Algorithms Specialization, offered by Coursera and UC San Diego, including my own solutions to the problems.

Description

This specialization explores fundamental in data structures and algorithms and is divided into six series courses:

The initial course covers algorithmic strategies, including greedy algorithms, divide-and-conquer algorithms, and dynamic programming. These three techniques are better described as strategic approaches rather than specific algorithms. The principles underlying these strategies are readily observable in more specialized algorithms. For instance, merge sort exemplifies the divide-and-conquer algorithm, and dynamic programming can be applied to solve problems like finding the shortest path in an undirected graph.

The second course, Data Structures, is the cornerstone of this specialization. To harness the full potential of effective algorithms, efficient data structures for data manipulation are indispensable. Among these, arrays and singly/doubly linked lists represent two concrete data structures. At the same time, there are many abstract data structures such as stacks, queues, priority queues, disjoint sets, hash tables, and binary trees. This course dives into the comprehensive theory and implementation of both concrete and abstract data structures, offering insights into their strengths and weaknesses and guidance on when to deploy them in various contexts.

Graph theory is a mathematical discipline that studies graph structures comprised of vertices connected by edges. Its significance extends to diverse fields, like computer science, cryptography, logistics, transportation, urban planning, and economics. This course introduces fundamental graph theory concepts, including identifying strongly connected components, finding shortest paths, and determining minimum spanning trees.

Getting Started

In this repository, all data structures and algorithms are developed from scratch. There is no requirement to install any additional dependencies; all you need is a Python3 or C++ compiler installed on your system.

Help

Any feedback, comments, and questions are welcome.

Authors

@lionlai

Version History

  • 2.0.0
    • Continue this course in 2023 and aim to understand EVERYTHING.
  • 1.0.0
    • Finish first three courses in 2016, but didn't continue till the end.

License

This project is licensed under the [NAME HERE] License - see the LICENSE.md file for details

Acknowledgments

Explore the inspiration and references listed here to further expand your knowledge and sharpen your skills.

About

My solutions for the course "Data Structures and Algorithms Specialization."

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published