山东大学 Design and Analysis of Algorithm 2019年 期末考试

Summary of Course

如题,后天上午期末考试,因课表冲突不得不突击复习,以下内容包括教材信息以及重点分析 (本科学过图论算法,简单的概念和证明以及本人熟悉的部分一带而过)

Textbook

Introduction to Algorithm (Third Edition)》by Thomas H. Cormen,Charles E. Leiserson, Ronald L. Rivest and Clifford Stein
Temporary Link:download PDF

Selected Solutions for《Introduction to Algorithm
Temporary Link:download PDF

Key Points

Chapter 22 Basic Graph Algorithm

  1. Graph Basics
    Graph (Edge&Vertex)
    Undirected Graph&Directed Graph
    Adjacency
    Repeated edge, Self-loop & Simple graph
    Degree, Isolated vertex
    Cycle, Sub-graph,
    Connected (connected component, strongly connected, strongly connected component)
    Special Graph (complete, bipartite, forest, tree, sparse, dense)


    Theorem 1.1
    Given an undirected graph G=(V,E)G = (V, E), vVd(v)=2E\sum_{v\in V}d(v)=2\lvert E\rvert

    Copollary 1.2
    Given an undirected graph G=(V,E)G = (V, E), the number of vertices with odd degrees is even.
  2. Representations of graphs
    山东大学 Design and Analysis of Algorithm 2019年 期末考试
    For an undirected graph G=(V,E)G = (V, E)
  • Adjacency-list:
    山东大学 Design and Analysis of Algorithm 2019年 期末考试
    Advantage:
       When the graph is sparse, uses only O(V+E|V|+|E|) memory.
    Disvantage:
       No quicker way to determine if a given edge (u,v)(u, v) is present in the graph than to search for v in the adjacency list Adj[u]Adj[u]. O(V| V |)

  • Adjacency matrix
    山东大学 Design and Analysis of Algorithm 2019年 期末考试
    Advantage:
       Easily or quickly to determine if an edge is in the graph or not. O(1)
    Disvantage:
       Uses more memory to store a graph. O(V| V |2)

  1. Elementary graph algorithms
  • BFS(Breadth-First Search)
    山东大学 Design and Analysis of Algorithm 2019年 期末考试

  • DFS(Deep-First Search)
    山东大学 Design and Analysis of Algorithm 2019年 期末考试

  • White Path Theorem
    山东大学 Design and Analysis of Algorithm 2019年 期末考试

  • Topological Sort
    山东大学 Design and Analysis of Algorithm 2019年 期末考试

  • Strongly connected components
    山东大学 Design and Analysis of Algorithm 2019年 期末考试

Chapter 23 Minimum spanning tree

  • Kruskal algorithm
  • Prim algorithm

Chapter 24 Single-Source Shortest Path

  • Bellman-Ford algorithm
  • Dijkstra Algorithm
  • Proof of Dijkstra algorithm

Chapter 15 Dynamic programming

  • Shortest path in DAGs
  • Knapsack problem
  • Bellman-Ford algorithm

Chapter 26 Maximum Flow

  • Capacity-scaling algorithm
  • Bipartite matching