Data Structures and Algorithms - Asian Barbie

When I walked into Algorithms class earlier this semester, my first thought was “Oh God.”

I had not been a fan of Discrete Mathematics, the precursor to the course, and the thought of having to learn these data structures and algorithms — and implement them programmatically — made me want to hide under a large rock and never come back out again.

Then I dove into the class, and realized that algorithms are really cool, and understood everything right away, and got a great job in Silicon Valley, and saved up money over the years and bought a nice house on the water where I lived happily ever after with my 50 cats.

Just kidding! I wish.

I mean, I do think that algorithms are cool, but they take time (and multiple resources) to really sink in. Data Structures and Algorithms is one of the core CS topics that I find the most challenging, which is precisely why I’m creating this blog series on them. I figure that the best way to learn is by teaching. This way, if I don’t know my shit, you all can call me out by leaving some constructive comments down below. 🙂 Impostor syndrome? What impostor syndrome?

This blog series is an experimental one in teaching to learn — by presenting information in a different way, it’ll stick better for me, too. I’ll be starting off by covering a few sorting and searching algorithms (also known as what I have to know for my midterm), and will add some additional topics that would be useful for, say, job interviews later on.

Here is the general breakdown of things I’m covering: 

How I Study Data Structures and Algorithms

Big-O Time Complexity

Trees

Types of Binary Trees

Binary Search Trees

Stacks, Queues, & Linked Lists

Hash Tables

Merge Sort

Quick Sort

Radix Sort (LSD, MSD)

Graphs

Red-Black Trees

Minimum Spanning Trees

Breadth-First Search & Depth-First Search

Dijkstra’s Algorithm

Prim’s Algorithm

Traveling Salesman Problem

You’ll need to know basic programming in Java in order to follow along with the code portions, but don’t worry if you can’t do that — my goal is to make the conceptual portions simple to understand, even to a person without a background in computer science.

You ready? I’m not, but I’m excited! Let’s do this! We’ll both learn something in the process.

Help Spread the Love!

If you have a friend who is trying to learn about Data Structures and Algorithms, and you think that this article could help them, please send it their way <3 I would really appreciate it!

Mimi Chenyao // Asian Barbie