Algorithms (2019)

Brought by: Brilliant

Overview

An algorithm is a step-by-step process to achieve some outcome. When algorithms involve a large amount of input data, complex manipulation, or both, we need to construct clever algorithms that a computer can work through quickly.

By the end of this course, you’ll know methods to measure and compare performance, and you’ll have mastered the fundamental problems in algorithms.

Syllabus

  • Algorithms: A quick introduction to what an algorithm is and how to measure its performance.
    • Intro to Computation: As a computer scientist, you think about how hard it is to come up with the answer, not just about the answer itself.
    • Using Recursion: With recursion, you can solve big problems by using solutions to small problems.
    • Algorithms in the World: Clever algorithms may be needed for simple tasks, like helping new social network users pick a username.
  • Sorting: A powerful tool for organizing data, from the basic intuition with insertion sort to practical algorithms like Mergesort.
    • Introduction to Sorting: Why do computer scientists worry so much about sorting?
    • Insertion Sort: Start slow! Insertion sort is a simple and effective way of sorting a small list of numbers.
    • Mergesort: What's easier than sorting one big sequence? Creating a sorted sequence from two smaller sorted sequences!
    • Quicksort: Quicksort, like Mergesort, uses the divide-and-conquer strategy to quickly sort arrays.
    • Radix Sort: By sorting digits and characters—instead of numbers and words—radix sort can outpace all the rest.
  • Graphs: Algorithms for these useful representations of connections among data.
    • Introduction to Graphs: Graphs are a fundamental tool for representing the world around you on a computer.
    • Trees: Trees are graphs without cycles, making them much easier to navigate.
    • Breadth-First Search: Breadth-first search is a way of finding the shortest connections in a graph.
    • Minimum Spanning Trees: Minimum spanning trees help you find the most helpful tree in a complicated graph.
  • Strings: Strings are simple, but the algorithms to analyze them are not!
    • Introduction to String Algorithms: Strings are sequences of characters.
    • Substring Search Algorithms: Finding one string inside another string is tricker than it first appears!
    • Deterministic Finite Automaton: Finite automata are an important tool for writing algorithms on strings.
    • Knuth-Morris-Pratt Algorithm: The very best way to search for substrings.
  • Dynamic Programming: Remembering what you already know to solve problems faster.
    • Dynamic Programming Introduction: A little memory goes a long way towards solving problems quickly.
    • Tiling Problem: How many ways can different tiles decorate a floor? Find out with dynamic programming.
    • Binary Tree: The dynamic programming solution to a binary tree puzzle.
    • Envelopes: Bring dynamic programming into the second dimension with this envelope fitting puzzle.
Algorithms (2019)
Go to course

Algorithms (2019)

Brought by: Brilliant

  • Brilliant
  • Paid
  • English
  • Certificate Not Available
  • Available at any time
  • beginner
  • N/A