Alg Des - Knowledge Frame - Part I

Knowledge Frame - Part I

  • Stable Matching
    • Stable Matching
      • Algorithm
        • START w/ an empty matching
        • WHILE exists a free man
          • Pick a free man m (FreeQ.DeQueue)
          • m proposes to his favorite untried womon w
            • (w = MenPre[m][P[m]]; P[m]++)
          • IF w prefer m to her current partner m'
            • (m’ = WomanPartner[w]) THEN
            • set m’ free (FreeQ.EnQueue <- m’)
            • accept m (WomanPartner[w] <- m)
          • ELSE w reject m.
            • (IF m hasn’t proposed to every woman THEN)
              • (FreeQ.EnQueue <- m)
      • Claim:
        • In man proposing, women’s partner always gets better (in her view)
      • Time Complexity: O(n^2)
  • Interval Scheduling
    • Interval Scheduling
      • Algorithm
        • Sort n jobs in increasing order of finishing times
        • FOR j = 1 to n
          • IF Ij is compatible w/ accepted jobs
            • THEN accept Ij
      • Proof: find the time
      • Time Complexity: O(n*log(n))
    • Scheduling All Intervals
      • Algorithm
        • Sort jobs in increasing order of start times
        • FOR j 1 to n DO
          • IF exists a processor that can accept Ij
            • THEN Choose any such processor Pk
              • Pk accepts Ij
          • ELSE Allocate a new processor and accept Ij
      • Key point of proof
        • find the time when there are depth+1 jobs are active: right after Sj
      • Time Complexity: O(n*log(n))
  • Minimum Spanning Tree
    • Claim 1: Let T be a MST, e in T, then e is the cheapest edge in the fundamental cut defined by T,e.
    • Claim 2: Let T be a MST, e in E\T, then e is the most expensive edge in the fundamental cycle defined by T,e.
    • Assume all edge weights are distinct
    • Cut Property: For any cut (A,B), let e be the cheapest cut edge, then e must belong to every MST
    • Cycle Property: For any cycle C, let e be the most expensive edge in C, the e does not belong to any MST
    • Kruskal’s Algorithm
      • Algorithm
        • Start w/ T = empty
        • FOR i = 1 to n-1 DO
          • Choose a cheapest edge from E\T and add it to T
        • OUTPUT T
      • Using Union-Find data structure
      • Time Complexity: O(m*log(n))
        • using Union-Find data structure with Union: Merge-By-Size
      • Time Complexity: O(mlog(n)) sorting + O(malpha(n)) for sorted input
        • using Union-Find data structure with Union: Merge-By-Size and Find: Path Compression
    • Prim‘s Algorithm
      • Time Complexity: O(m*log(n)) using Binary Heap
      • Time Complexity: O(n*log(n)+m) using Fibonacci Heap
    • Reverse-delete Algorithm
      • Algorithm
        • Start w/ T=E
        • FOR i = 1 to m-n+1 DO
          • choose the most expensive edge e in T, remove e from T
        • OUTPUT T
      • Time Complexity: O(m^2*n)
    • Boruvka’s Algorithm
      • Time Complexity: O(m*log(n))
    • Boruvka+Prim’s Algorithm
      • Time Complexity: O(m*log(log(n)))
  • Single Source Shortest Paths
    • Dijkstra’s Algorithm
      • Algorithm
        • Start from dist[s]=0, dist[v]=w(s,v)
        • S={s} <- explored nodes: for any u in S, dist[v] is final
        • Repeat n-1 time
          • Pick v in V\S, s.t. dist[v] is smallest
          • S <- SU{v} <- mask v as explored, dist[v] finalized new edges: (v,u) for all u in V\S, for every (v,u) in E, u in V\S <- representation of v
            • dist[u] = min{dist[u], dist[v]+w(v,u)}, from [u]<-v if the update is successful
      • Time Complexity: O(m*log(n)) using Binary Heap
      • Time Complexity: O(n*log(n)+m) using Fibonacci
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,837评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,551评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,417评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,448评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,524评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,554评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,569评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,316评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,766评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,077评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,240评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,912评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,560评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,176评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,425评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,114评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,114评论 2 352

推荐阅读更多精彩内容