🥑
Algorithms
  • The Algorithms Interest Group
  • The C++ Programming Language
    • GCC Compiler
    • Fundamental
    • Integrated Environment
    • STL Containers
  • Fundamental Algorithms and Data Structures
    • Greedy
    • Greedy (2022)
    • Binary Search
    • Recursion
    • Linear Structure
    • Generic Tree
  • Graph Theory
    • Generic Graph
    • Minimum Spanning Tree
    • Depth First Search
    • Breadth First Search
    • Shortest Path
    • Network Flow
    • Bipartite Graph
    • Topological Sort
    • Automaton
  • Dynamic Programming
    • Basic Dynamic Programming
Powered by GitBook
On this page
  • Introduction
  • Useful URLs
  • How to use this repository?
  • Assessments
  • Outline (Legacy Version for 2021)
  • Outline (New Version for 2022)
  • Before We Start (for MPI Algorithms lecture)
  • vim (neovim)
  • LeetCode

Was this helpful?

The Algorithms Interest Group

Introduction

NextGCC Compiler

Last updated 3 years ago

Was this helpful?

Introduction

Lecturer: Steve Yan

Location: Macao Polytechnic Institute

Time Schedule: TBA

Useful URLs

How to use this repository?

Clone via HTTPS using following command or Click Code then Download ZIP.

git clone https://github.com/Ex10si0n/Algorithms.git

Assessments

  • Attandance

  • Assignments

Outline (Legacy Version for 2021)

This lecture will specifically focus on the Algorithm implementation. My example code will be demonstrated in Python, but you can adopt any kind of programming language if you prefer.

No slides are distributed (cuz. I do not regard slides as an efficient format to display codes) but all of the codes and explanations are shown on this README.md.

Outline (New Version for 2022)

The following topics will be covered in the Interest Group

  • Fundamental Methodologies

      • Linear Structure

      • Generic Tree

        • Linear Structure (maintained by Tree) (由树维护的线性结构)

      • Generic Graph

  • Graph Theory (图论)

    • Multiple Source Shortest Path - I (多源最短路径)

    • Shortest Path - II (单源最短路径)

    • Network Flow (网络流)

    • Bipartite Graph (二分图)

Before We Start (for MPI Algorithms lecture)

Here are some useful tools for coding. I will briefly introduce them as follows:

vim (neovim)

Vim is a highly efficient code editor in the command line. I will use vim to implement the code of algorithms in this lecture. You can try to use it with ease because I will specifically introduce some shortcuts and modes of vim. But you are free to adopt any IDEs or text editor you like. You can install it by command:

Installation

# Linux
sudo <package-manager> install neovim

# macOS
brew install neovim

# Windows
choco install vim

Package manager installation on macOS and Windows

# macOS (in Terminal.app)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# Windows (in powershell.exe with Administrator)
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))

Or install vim in IDEs (better experience)

LeetCode

Typora:

LeetCode:

POJ:

You can open README.md (Markdown File: open via or notepad.exe) locally or on page.

C++ is essential for Algorithms Development due to its high efficiency of execution. However, it is not as easy as the Python language in implementation. In this Interest Group, we adopted C++ in Algorithm design. You are welcome to set this website as a favorite to visit at any time. No slides will be distributed in this lecture, you are free to copy or share the codes on this website. All the contents are under the license.

Demo at

LeetCode in . It is a good platform for elementary algorithms learning. It is appropriate for preparing for a job as well as learning algorithms.

If you do not have a LeetCode account, please visit or to create an account.

Typora
this
Attribution 4.0 International (CC BY 4.0)
Greedy (贪心)
Binary Search (二分)
Recursion (递归)
Data Structure (数据结构)
Queue (队列)
Stack (栈)
Tree (树)
Binary Tree (二叉树)
Binary Indexed Tree (二叉索引树)
Segment Tree (线段树)
Graph (图)
Minimum Spanning Tree (最小生成树)
Depth-first Search (深度优先搜索)
Floyed-Warshall
Breadth-first Search (广度优先搜索)
Dijkstra
SPFA
Ford-Fulkerson (最大流算法)
Jetbrains/using-product-as-the-vim-editor
知乎
Leetcode.com
Leetcode-cn.com (中文题目)
typora.io
leetcode/problemset
poj/problemlist