考點匯總

[toc]

題型

  • 判斷題,對了得分,錯了倒扣
  • 簡答題
    • 概念、什么是平衡二叉樹、什么是有向連通圖
    • 給一個AVL樹、SPlay,畫出計算過程
    • 給一個函數判斷是不是遞歸、這個遞歸有沒有什么問題
      • 是否少了邊界條件或者遞歸條件
    • P是不是NP的子集、你能解釋是為什么嗎?分別說出他們的概念
    • 解釋什么是Worse-case和平均情況、什么時候用WC什么時候用AC、AC和平均分攤之間有什么區別
    • 排序算法的basic操作
    • 給一個數據寫一下最近鄰
    • 給一個圖寫出MST
    • 紅黑樹的判斷、構造一個紅黑樹(只要寫過程、不用實現)
    • splay tree 的時間復雜度

Lecture 1-2

P19.Optimizing and heuristic algorithms

  • 最優解(優化算法)和啟發式的區別、原因

P20.Why heuristics?

  • 為什么選擇啟發式

P22.Constructive heuristics

  • 均勻分布,在某個范圍內等概率生成某些數
  • 步驟、過程,step0-2、了解一下流程圖

P26-.Huffman’s algorithm

  • 哈夫曼編碼、文字壓縮

P29.Graph

  • 圖的定義

P31.Binary tree

  • 什么是二叉樹

P35.Tries

  • 什么是Tries

P36.Definition - Prefix

  • 什么是前綴、后綴
  • 給出字符串、能夠寫出前綴后綴、注意不止一個、是有一系列的前綴

P42-.Huffmans’s algorithm

  • 給一個例子,然后畫出過程

P58.Neighborhood search

  • 用來求解背包問題、把背包問題描述成數學的形式、自己寫一遍算法、寫出計算步驟
  • 1.x1
  • 2.求解x2(根據已知方法)寫計算過程

P89.Tabu search (不確定會考)

  • 哪些要、哪些不要

P119.Mergesort

  • 先分解在合并排序的過程
  • 寫出每步步驟

P133.Dynamic Programming

  • 動態規劃找出最優解、相比貪心算法的優點

P138

  • 不選、選、畫出圖、動態規劃要掌握該圖
  • 背包問題的動態規劃圖

Lecture 3-4

P4-

  • 連通圖、有向圖、計算出度入度

P8.Cycle in directed graph

  • 回路存在即不能進行拓撲排序

P10.Connected undirected graph

  • 概念判斷、什么是強連通圖、連通圖、判斷這個圖是不是強連通的、判斷是不是完全圖
  • 完全的無向圖里面的邊數的關系

P15.Tree

  • 什么是樹、判斷是不是樹

P18.Graph representation

  • 圖的兩種存儲方式、把選擇的那一種畫出來
  • 各自的優缺點
    • 矩陣索引快,但是空間消耗大
    • 鏈表慢,但是節省空間,沒有無效存儲、多次搜索(不知道是否正確具體參考ppt?)

P33.Prim’s algorithm

  • 根據這兩個算法、畫出MST、會畫就可以了

P35.Topological ordering

  • 找出拓撲排序、并且解釋為什么不能有環、彼此是彼此的依賴結點

Lecture 5-6

P2.What is complexity analysis?

  • 什么是算法復雜度

P4-5.Basic operations of an algorithm & What is a basic operation?

  • 不同算法的。。。排序中的遍歷過程、merge比較

P7.Complexity as a function of the input - Examples

  • 常見算法的復雜度、最好的情況、最壞的情況、在什么情況下最好

P20.Average and Worst case analysis

  • 掌握最壞的情況、不用掌握平均的

P23.Relative growth rate of functions

  • 給出一個表達式,可以用Big O的形式表達出來、去掉常數項和低次項還有系數

P29.Example: O(n3), Ω(n3), and Θ(n3)

  • 上下界、O的上界、Ω的下界、Θ的確界

P36.P and NP

  • NP中N 的含義、NP是否等于P、一般是不等、說明原因

P46.How to show that a problem is N P complete I

  • 過于具體、可以簡化

P47.How to show that a problem is N P complete II

  • 具體證明步驟、會證明
  • 把第二條分成兩點

P48.Amortized analysis - Initial example

  • 只需要掌握基本概念、 a sequence of operations是關鍵詞

P53.Amortized vs average-case analysis

  • 兩者并不一樣、AC是發生的概率,并不考慮多個步驟再平均

Lecture 7-8

P4.Binary tree

  • 二叉樹的基本操作

P5.Binary search tree

  • 什么是balance search tree、大小關系、給出一個不平衡的->平衡

P20.Tree balance

  • 如何判斷一棵樹是否平衡

P29.Inserting

  • 要會操作、和splay tree 兩個考一個

P30.Splay trees

  • 考步驟、會插入刪除

P58.Red-black trees

  • 掌握四條定義、會判斷是否是紅黑樹

最后一次復習內容

splay tree (肯定考)

  • 旋轉目的是把新加入的節點放到根節點,使得方便。。。
  • 理由:因為新加入的節點很可能再次使用
  • 旋轉方式:
    [圖片上傳失敗...(image-462672-1547515591948)]

紅黑樹

  • 判斷

    • Each node is colored either red or black.
    • The root and leaves(NIL's--葉子節點標示) are black.
    • If a node is red, its children must be black.
    • Every path from a node to a leaf must contain the same number of black nodes.
      • = Num_black(node)
  • 構造

    • Self-balancing BST
  • 插入

    • 新插入的是紅色,保證第四條,并且保證BST性質
      [圖片上傳失敗...(image-8296fb-1547515591949)]

    • 四種情況

      • z = root
        • 節點變為黑色
      • z.uncle = Red
        • Grandparent、Parent、Uncle 顏色轉成相反的顏色
          [圖片上傳失敗...(image-5e4ec7-1547515591949)]
      • z.uncle = Black(triangle)
        • 旋轉Parent節點,變成線性
          [圖片上傳失敗...(image-921444-1547515591949)]
      • z.uncle = Black(line)
        • 旋轉Grandparent節點,Grandparent、Parent 顏色轉成相反的顏色
          [圖片上傳失敗...(image-1a34ff-1547515591949)]

suffix tree

  • suffix 有很多

    • s = abaaba$
      • $
      • a$
      • ba$
      • aba$
      • aaba$
      • baaba$
      • abaaba$
  • suffix trie 樹

    • 可以得到三個信息
      • 有沒有
      • 有幾個
      • 分別從哪邊開始
        [圖片上傳失敗...(image-1f6fe5-1547515591949)]
  • 兩個字符串判斷公共的子串

    • 分別先往子串后面加上富豪
    • 最后標上每一層X or Y or XY,找XY層數最多的,字符最長的,把邊讀出來就是最長子串
      [圖片上傳失敗...(image-43362e-1547515591949)]
      [圖片上傳失敗...(image-e239eb-1547515591949)]
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容