158
Algorithm Design and Analysis CS 214 Dominik Scheder [email protected] SEIEE Building 3, Room 526 http://basics.sjtu.edu.cn/~dominik/teaching/

Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Algorithm Design and Analysis

CS 214

Dominik Scheder

[email protected]

SEIEE Building 3, Room 526

http://basics.sjtu.edu.cn/~dominik/teaching/

Page 2: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Algorithm Design and Analysis

CS 214

Dominik Scheder

[email protected]

SEIEE Building 3, Room 526

http://basics.sjtu.edu.cn/~dominik/teaching/

Page 3: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Algorithm Design and Analysis

CS 214

Dominik Scheder

[email protected]

SEIEE Building 3, Room 526

http://basics.sjtu.edu.cn/~dominik/teaching/

Page 4: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Algorithm Design and Analysis

CS 214

Dominik Scheder

[email protected]

SEIEE Building 3, Room 526

http://basics.sjtu.edu.cn/~dominik/teaching/

Page 5: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Grading and Homework

Page 6: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Grading and Homework

Grading: 40% homework assignment, 60 % final exam

Page 7: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Grading and Homework

Grading: 40% homework assignment, 60 % final exam

Homework:

Page 8: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Grading and Homework

Grading: 40% homework assignment, 60 % final exam

Homework:

Handed out every two weeks

Page 9: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Grading and Homework

Grading: 40% homework assignment, 60 % final exam

Homework:

Handed out every two weeks

You work on it in small groups (3-4 people)

Page 10: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Grading and Homework

Grading: 40% homework assignment, 60 % final exam

Homework:

Handed out every two weeks

You work on it in small groups (3-4 people)

Hand it back to me or Zhengyang a week later

Page 11: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Grading and Homework

Grading: 40% homework assignment, 60 % final exam

Homework:

Handed out every two weeks

You work on it in small groups (3-4 people)

Hand it back to me or Zhengyang a week later

Each group presents solution at some point

Page 12: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Grading and Homework

Grading: 40% homework assignment, 60 % final exam

Homework:

Handed out every two weeks

You work on it in small groups (3-4 people)

Hand it back to me or Zhengyang a week later

Each group presents solution at some point

Please form small groups until next week!

Page 13: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Textbook

Algorithms

Sanjoy DasguptaChristos Papadimitriou

Umesh Vazirani

Page 14: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Which programming languages do you know?

Which algorithms do you know?(What is their running time?)

Page 15: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

What are Algorithms?

Page 16: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

What are Algorithms?

Example 1: A bad algorithm

Page 17: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

What are Algorithms?

Example 1: A bad algorithm

Example 2: A good algorithm

Page 18: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

An Algorithmic Example

Sorting

Page 19: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe
Page 20: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Ye ZihaoLi HuichenXie TianchengBai YiweiCai WanxinYu HongzhongXu XiaojunQiu ZhiLi YunqiZhao XueyuanLiu ZhijianWan ChengZhou YuhaoZhu QiumingLiu HaomingLu YizhouTang Shuyang

Xue ZhendongGao BichengSun XingyuanYang RunzheYou XiaotianZhang XuanChen LequnChen TianyaoKe SongyuHuang YuxiangXu ShichaoQiu WeiHuang JunxiangXu BowenPu YifeiYou YurongZhang Jiaheng

Page 21: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Ye ZihaoLi HuichenXie TianchengBai YiweiCai WanxinYu HongzhongXu XiaojunQiu ZhiLi YunqiZhao XueyuanLiu ZhijianWan ChengZhou YuhaoZhu QiumingLiu HaomingLu YizhouTang Shuyang

Xue ZhendongGao BichengSun XingyuanYang RunzheYou XiaotianZhang XuanChen LequnChen TianyaoKe SongyuHuang YuxiangXu ShichaoQiu WeiHuang JunxiangXu BowenPu YifeiYou YurongZhang Jiaheng

Page 22: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Ye ZihaoLi HuichenXie TianchengBai YiweiCai WanxinYu HongzhongXu XiaojunQiu ZhiLi YunqiZhao XueyuanLiu ZhijianWan ChengZhou YuhaoZhu QiumingLiu HaomingLu YizhouTang Shuyang

Xue ZhendongGao BichengSun XingyuanYang RunzheYou XiaotianZhang XuanChen LequnChen TianyaoKe SongyuHuang YuxiangXu ShichaoQiu WeiHuang JunxiangXu BowenPu YifeiYou YurongZhang Jiaheng

Page 23: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Li HuichenYe ZihaoXie TianchengBai YiweiCai WanxinYu HongzhongXu XiaojunQiu ZhiLi YunqiZhao XueyuanLiu ZhijianWan ChengZhou YuhaoZhu QiumingLiu HaomingLu YizhouTang Shuyang

Xue ZhendongGao BichengSun XingyuanYang RunzheYou XiaotianZhang XuanChen LequnChen TianyaoKe SongyuHuang YuxiangXu ShichaoQiu WeiHuang JunxiangXu BowenPu YifeiYou YurongZhang Jiaheng

Page 24: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Li HuichenYe ZihaoXie TianchengBai YiweiCai WanxinYu HongzhongXu XiaojunQiu ZhiLi YunqiZhao XueyuanLiu ZhijianWan ChengZhou YuhaoZhu QiumingLiu HaomingLu YizhouTang Shuyang

Xue ZhendongGao BichengSun XingyuanYang RunzheYou XiaotianZhang XuanChen LequnChen TianyaoKe SongyuHuang YuxiangXu ShichaoQiu WeiHuang JunxiangXu BowenPu YifeiYou YurongZhang Jiaheng

Page 25: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Li HuichenYe ZihaoXie TianchengBai YiweiCai WanxinYu HongzhongXu XiaojunQiu ZhiLi YunqiZhao XueyuanLiu ZhijianWan ChengZhou YuhaoZhu QiumingLiu HaomingLu YizhouTang Shuyang

Xue ZhendongGao BichengSun XingyuanYang RunzheYou XiaotianZhang XuanChen LequnChen TianyaoKe SongyuHuang YuxiangXu ShichaoQiu WeiHuang JunxiangXu BowenPu YifeiYou YurongZhang Jiaheng

Page 26: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Li HuichenXie TianchengYe ZihaoBai YiweiCai WanxinYu HongzhongXu XiaojunQiu ZhiLi YunqiZhao XueyuanLiu ZhijianWan ChengZhou YuhaoZhu QiumingLiu HaomingLu YizhouTang Shuyang

Xue ZhendongGao BichengSun XingyuanYang RunzheYou XiaotianZhang XuanChen LequnChen TianyaoKe SongyuHuang YuxiangXu ShichaoQiu WeiHuang JunxiangXu BowenPu YifeiYou YurongZhang Jiaheng

Page 27: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Li HuichenXie TianchengYe ZihaoBai YiweiCai WanxinYu HongzhongXu XiaojunQiu ZhiLi YunqiZhao XueyuanLiu ZhijianWan ChengZhou YuhaoZhu QiumingLiu HaomingLu YizhouTang Shuyang

Xue ZhendongGao BichengSun XingyuanYang RunzheYou XiaotianZhang XuanChen LequnChen TianyaoKe SongyuHuang YuxiangXu ShichaoQiu WeiHuang JunxiangXu BowenPu YifeiYou YurongZhang Jiaheng

Page 28: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Li HuichenXie TianchengYe ZihaoBai YiweiCai WanxinYu HongzhongXu XiaojunQiu ZhiLi YunqiZhao XueyuanLiu ZhijianWan ChengZhou YuhaoZhu QiumingLiu HaomingLu YizhouTang Shuyang

Xue ZhendongGao BichengSun XingyuanYang RunzheYou XiaotianZhang XuanChen LequnChen TianyaoKe SongyuHuang YuxiangXu ShichaoQiu WeiHuang JunxiangXu BowenPu YifeiYou YurongZhang Jiaheng

Li HuichenXie TianchengYe ZihaoBai YiweiCai WanxinYu HongzhongXu XiaojunQiu ZhiLi YunqiZhao XueyuanLiu ZhijianWan ChengZhou YuhaoZhu QiumingLiu HaomingLu YizhouTang Shuyang

Xue ZhendongGao BichengSun XingyuanYang RunzheYou XiaotianZhang XuanChen LequnChen TianyaoKe SongyuHuang YuxiangXu ShichaoQiu WeiHuang JunxiangXu BowenPu YifeiYou YurongZhang Jiaheng

Page 29: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Li HuichenXie TianchengYe ZihaoBai YiweiCai WanxinYu HongzhongXu XiaojunQiu ZhiLi YunqiZhao XueyuanLiu ZhijianWan ChengZhou YuhaoZhu QiumingLiu HaomingLu YizhouTang Shuyang

Xue ZhendongGao BichengSun XingyuanYang RunzheYou XiaotianZhang XuanChen LequnChen TianyaoKe SongyuHuang YuxiangXu ShichaoQiu WeiHuang JunxiangXu BowenPu YifeiYou YurongZhang Jiaheng

Li HuichenXie TianchengYe ZihaoBai YiweiCai WanxinYu HongzhongXu XiaojunQiu ZhiLi YunqiZhao XueyuanLiu ZhijianWan ChengZhou YuhaoZhu QiumingLiu HaomingLu YizhouTang Shuyang

Xue ZhendongGao BichengSun XingyuanYang RunzheYou XiaotianZhang XuanChen LequnChen TianyaoKe SongyuHuang YuxiangXu ShichaoQiu WeiHuang JunxiangXu BowenPu YifeiYou YurongZhang Jiaheng

Page 30: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Li HuichenXie TianchengYe ZihaoBai YiweiCai WanxinYu HongzhongXu XiaojunQiu ZhiLi YunqiZhao XueyuanLiu ZhijianWan ChengZhou YuhaoZhu QiumingLiu HaomingLu YizhouTang Shuyang

Xue ZhendongGao BichengSun XingyuanYang RunzheYou XiaotianZhang XuanChen LequnChen TianyaoKe SongyuHuang YuxiangXu ShichaoQiu WeiHuang JunxiangXu BowenPu YifeiYou YurongZhang Jiaheng

Li HuichenXie TianchengYe ZihaoBai YiweiCai WanxinYu HongzhongXu XiaojunQiu ZhiLi YunqiZhao XueyuanLiu ZhijianWan ChengZhou YuhaoZhu QiumingLiu HaomingLu YizhouTang Shuyang

Xue ZhendongGao BichengSun XingyuanYang RunzheYou XiaotianZhang XuanChen LequnChen TianyaoKe SongyuHuang YuxiangXu ShichaoQiu WeiHuang JunxiangXu BowenPu YifeiYou YurongZhang Jiaheng

Page 31: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Li HuichenXie TianchengBai YiweiYe ZihaoCai WanxinYu HongzhongXu XiaojunQiu ZhiLi YunqiZhao XueyuanLiu ZhijianWan ChengZhou YuhaoZhu QiumingLiu HaomingLu YizhouTang Shuyang

Xue ZhendongGao BichengSun XingyuanYang RunzheYou XiaotianZhang XuanChen LequnChen TianyaoKe SongyuHuang YuxiangXu ShichaoQiu WeiHuang JunxiangXu BowenPu YifeiYou YurongZhang Jiaheng

Page 32: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Li HuichenXie TianchengBai YiweiYe ZihaoCai WanxinYu HongzhongXu XiaojunQiu ZhiLi YunqiZhao XueyuanLiu ZhijianWan ChengZhou YuhaoZhu QiumingLiu HaomingLu YizhouTang Shuyang

Xue ZhendongGao BichengSun XingyuanYang RunzheYou XiaotianZhang XuanChen LequnChen TianyaoKe SongyuHuang YuxiangXu ShichaoQiu WeiHuang JunxiangXu BowenPu YifeiYou YurongZhang Jiaheng

Page 33: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Li HuichenBai YiweiXie TianchengYe ZihaoCai WanxinYu HongzhongXu XiaojunQiu ZhiLi YunqiZhao XueyuanLiu ZhijianWan ChengZhou YuhaoZhu QiumingLiu HaomingLu YizhouTang Shuyang

Xue ZhendongGao BichengSun XingyuanYang RunzheYou XiaotianZhang XuanChen LequnChen TianyaoKe SongyuHuang YuxiangXu ShichaoQiu WeiHuang JunxiangXu BowenPu YifeiYou YurongZhang Jiaheng

Page 34: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Li HuichenBai YiweiXie TianchengYe ZihaoCai WanxinYu HongzhongXu XiaojunQiu ZhiLi YunqiZhao XueyuanLiu ZhijianWan ChengZhou YuhaoZhu QiumingLiu HaomingLu YizhouTang Shuyang

Xue ZhendongGao BichengSun XingyuanYang RunzheYou XiaotianZhang XuanChen LequnChen TianyaoKe SongyuHuang YuxiangXu ShichaoQiu WeiHuang JunxiangXu BowenPu YifeiYou YurongZhang Jiaheng

Page 35: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Bai YiweiLi HuichenXie TianchengYe ZihaoCai WanxinYu HongzhongXu XiaojunQiu ZhiLi YunqiZhao XueyuanLiu ZhijianWan ChengZhou YuhaoZhu QiumingLiu HaomingLu YizhouTang Shuyang

Xue ZhendongGao BichengSun XingyuanYang RunzheYou XiaotianZhang XuanChen LequnChen TianyaoKe SongyuHuang YuxiangXu ShichaoQiu WeiHuang JunxiangXu BowenPu YifeiYou YurongZhang Jiaheng

Page 36: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Bai YiweiLi HuichenXie TianchengYe ZihaoCai WanxinYu HongzhongXu XiaojunQiu ZhiLi YunqiZhao XueyuanLiu ZhijianWan ChengZhou YuhaoZhu QiumingLiu HaomingLu YizhouTang Shuyang

Xue ZhendongGao BichengSun XingyuanYang RunzheYou XiaotianZhang XuanChen LequnChen TianyaoKe SongyuHuang YuxiangXu ShichaoQiu WeiHuang JunxiangXu BowenPu YifeiYou YurongZhang Jiaheng

Page 37: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Bai YiweiLi HuichenXie TianchengYe ZihaoCai WanxinYu HongzhongXu XiaojunQiu ZhiLi YunqiZhao XueyuanLiu ZhijianWan ChengZhou YuhaoZhu QiumingLiu HaomingLu YizhouTang Shuyang

Xue ZhendongGao BichengSun XingyuanYang RunzheYou XiaotianZhang XuanChen LequnChen TianyaoKe SongyuHuang YuxiangXu ShichaoQiu WeiHuang JunxiangXu BowenPu YifeiYou YurongZhang Jiaheng

Page 38: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Bai YiweiLi HuichenXie TianchengCai WanxinYe ZihaoYu HongzhongXu XiaojunQiu ZhiLi YunqiZhao XueyuanLiu ZhijianWan ChengZhou YuhaoZhu QiumingLiu HaomingLu YizhouTang Shuyang

Xue ZhendongGao BichengSun XingyuanYang RunzheYou XiaotianZhang XuanChen LequnChen TianyaoKe SongyuHuang YuxiangXu ShichaoQiu WeiHuang JunxiangXu BowenPu YifeiYou YurongZhang Jiaheng

Page 39: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Bai YiweiLi HuichenXie TianchengCai WanxinYe ZihaoYu HongzhongXu XiaojunQiu ZhiLi YunqiZhao XueyuanLiu ZhijianWan ChengZhou YuhaoZhu QiumingLiu HaomingLu YizhouTang Shuyang

Xue ZhendongGao BichengSun XingyuanYang RunzheYou XiaotianZhang XuanChen LequnChen TianyaoKe SongyuHuang YuxiangXu ShichaoQiu WeiHuang JunxiangXu BowenPu YifeiYou YurongZhang Jiaheng

Page 40: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Bai YiweiLi HuichenCai WanxinXie TianchengYe ZihaoYu HongzhongXu XiaojunQiu ZhiLi YunqiZhao XueyuanLiu ZhijianWan ChengZhou YuhaoZhu QiumingLiu HaomingLu YizhouTang Shuyang

Xue ZhendongGao BichengSun XingyuanYang RunzheYou XiaotianZhang XuanChen LequnChen TianyaoKe SongyuHuang YuxiangXu ShichaoQiu WeiHuang JunxiangXu BowenPu YifeiYou YurongZhang Jiaheng

Page 41: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Bai YiweiLi HuichenCai WanxinXie TianchengYe ZihaoYu HongzhongXu XiaojunQiu ZhiLi YunqiZhao XueyuanLiu ZhijianWan ChengZhou YuhaoZhu QiumingLiu HaomingLu YizhouTang Shuyang

Xue ZhendongGao BichengSun XingyuanYang RunzheYou XiaotianZhang XuanChen LequnChen TianyaoKe SongyuHuang YuxiangXu ShichaoQiu WeiHuang JunxiangXu BowenPu YifeiYou YurongZhang Jiaheng

Page 42: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Bai YiweiCai WanxinLi HuichenXie TianchengYe ZihaoYu HongzhongXu XiaojunQiu ZhiLi YunqiZhao XueyuanLiu ZhijianWan ChengZhou YuhaoZhu QiumingLiu HaomingLu YizhouTang Shuyang

Xue ZhendongGao BichengSun XingyuanYang RunzheYou XiaotianZhang XuanChen LequnChen TianyaoKe SongyuHuang YuxiangXu ShichaoQiu WeiHuang JunxiangXu BowenPu YifeiYou YurongZhang Jiaheng

Page 43: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Bai YiweiCai WanxinLi HuichenXie TianchengYe ZihaoYu HongzhongXu XiaojunQiu ZhiLi YunqiZhao XueyuanLiu ZhijianWan ChengZhou YuhaoZhu QiumingLiu HaomingLu YizhouTang Shuyang

Xue ZhendongGao BichengSun XingyuanYang RunzheYou XiaotianZhang XuanChen LequnChen TianyaoKe SongyuHuang YuxiangXu ShichaoQiu WeiHuang JunxiangXu BowenPu YifeiYou YurongZhang Jiaheng

Page 44: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Bai YiweiCai WanxinLi HuichenXie TianchengYe ZihaoYu HongzhongXu XiaojunQiu ZhiLi YunqiZhao XueyuanLiu ZhijianWan ChengZhou YuhaoZhu QiumingLiu HaomingLu YizhouTang Shuyang

Xue ZhendongGao BichengSun XingyuanYang RunzheYou XiaotianZhang XuanChen LequnChen TianyaoKe SongyuHuang YuxiangXu ShichaoQiu WeiHuang JunxiangXu BowenPu YifeiYou YurongZhang Jiaheng

Page 45: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Bai YiweiCai WanxinLi HuichenXie TianchengYe ZihaoYu HongzhongXu XiaojunQiu ZhiLi YunqiZhao XueyuanLiu ZhijianWan ChengZhou YuhaoZhu QiumingLiu HaomingLu YizhouTang Shuyang

Xue ZhendongGao BichengSun XingyuanYang RunzheYou XiaotianZhang XuanChen LequnChen TianyaoKe SongyuHuang YuxiangXu ShichaoQiu WeiHuang JunxiangXu BowenPu YifeiYou YurongZhang Jiaheng

Page 46: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Bai YiweiCai WanxinLi HuichenXie TianchengYe ZihaoYu HongzhongXu XiaojunQiu ZhiLi YunqiZhao XueyuanLiu ZhijianWan ChengZhou YuhaoZhu QiumingLiu HaomingLu YizhouTang Shuyang

Xue ZhendongGao BichengSun XingyuanYang RunzheYou XiaotianZhang XuanChen LequnChen TianyaoKe SongyuHuang YuxiangXu ShichaoQiu WeiHuang JunxiangXu BowenPu YifeiYou YurongZhang Jiaheng

Page 47: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Bai YiweiCai WanxinLi HuichenXie TianchengYe ZihaoYu HongzhongXu XiaojunQiu ZhiLi YunqiZhao XueyuanLiu ZhijianWan ChengZhou YuhaoZhu QiumingLiu HaomingLu YizhouTang Shuyang

Xue ZhendongGao BichengSun XingyuanYang RunzheYou XiaotianZhang XuanChen LequnChen TianyaoKe SongyuHuang YuxiangXu ShichaoQiu WeiHuang JunxiangXu BowenPu YifeiYou YurongZhang Jiaheng

Page 48: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Physical Exercise!

Page 49: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Analyzing Insertion Sort

blackboard

Page 50: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Analyzing Insertion Sort

Page 51: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Analyzing Insertion Sort

Sorting n items can require up to n(n−1)2 comparisons.

Page 52: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Analyzing Insertion Sort

Sorting n items can require up to n(n−1)2 comparisons.

This class

Set Size Comparisons

Page 53: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Analyzing Insertion Sort

Sorting n items can require up to n(n−1)2 comparisons.

This class 34

Set Size Comparisons

Page 54: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Analyzing Insertion Sort

Sorting n items can require up to n(n−1)2 comparisons.

This class 34

Set Size Comparisons

561

Page 55: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Analyzing Insertion Sort

Sorting n items can require up to n(n−1)2 comparisons.

This class 34

Set Size Comparisons

561

Jiaotong students

Page 56: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Analyzing Insertion Sort

Sorting n items can require up to n(n−1)2 comparisons.

This class 34

Set Size Comparisons

561

Jiaotong students 41297

Page 57: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Analyzing Insertion Sort

Sorting n items can require up to n(n−1)2 comparisons.

This class 34

Set Size Comparisons

561

Jiaotong students 41297 852,700,456

Page 58: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Analyzing Insertion Sort

Sorting n items can require up to n(n−1)2 comparisons.

This class 34

Set Size Comparisons

561

Jiaotong students 41297 852,700,456

Runtime

Page 59: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Analyzing Insertion Sort

Sorting n items can require up to n(n−1)2 comparisons.

This class 34

Set Size Comparisons

561

Jiaotong students 41297 852,700,456

Runtime

1 second

Page 60: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Analyzing Insertion Sort

Sorting n items can require up to n(n−1)2 comparisons.

This class 34

Set Size Comparisons

561

Jiaotong students 41297 852,700,456

Runtime

1 second

Shanghai Residents

Page 61: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Analyzing Insertion Sort

Sorting n items can require up to n(n−1)2 comparisons.

This class 34

Set Size Comparisons

561

Jiaotong students 41297 852,700,456

Runtime

1 second

Shanghai Residents 24 mio

Page 62: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Analyzing Insertion Sort

Sorting n items can require up to n(n−1)2 comparisons.

This class 34

Set Size Comparisons

561

Jiaotong students 41297 852,700,456

Runtime

1 second

Shanghai Residents 24 mio 294× 1012

Page 63: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Analyzing Insertion Sort

Sorting n items can require up to n(n−1)2 comparisons.

This class 34

Set Size Comparisons

561

Jiaotong students 41297 852,700,456

Runtime

1 second

Shanghai Residents 24 mio 294× 1012 95 hours

Page 64: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Faster computers don’t solve this problem.

Page 65: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Faster computers don’t solve this problem.

Better algorithms do.

Page 66: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

A smarter sorting algorithm

Page 67: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Ye ZihaoLi HuichenXie TianchengBai YiweiCai WanxinYu HongzhongXu XiaojunQiu ZhiLi YunqiZhao XueyuanLiu ZhijianWan ChengZhou YuhaoZhu QiumingLiu HaomingLu YizhouTang Shuyang

Xue ZhendongGao BichengSun XingyuanYang RunzheYou XiaotianZhang XuanChen LequnChen TianyaoKe SongyuHuang YuxiangXu ShichaoQiu WeiHuang JunxiangXu BowenPu YifeiYou YurongZhang Jiaheng

Page 68: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Ye ZihaoLi HuichenXie TianchengBai YiweiCai WanxinYu HongzhongXu XiaojunQiu ZhiLi YunqiZhao XueyuanLiu ZhijianWan ChengZhou YuhaoZhu QiumingLiu HaomingLu YizhouTang Shuyang

Xue ZhendongGao BichengSun XingyuanYang RunzheYou XiaotianZhang XuanChen LequnChen TianyaoKe SongyuHuang YuxiangXu ShichaoQiu WeiHuang JunxiangXu BowenPu YifeiYou YurongZhang Jiaheng

1. Sort the first half

Page 69: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Xue ZhendongGao BichengSun XingyuanYang RunzheYou XiaotianZhang XuanChen LequnChen TianyaoKe SongyuHuang YuxiangXu ShichaoQiu WeiHuang JunxiangXu BowenPu YifeiYou YurongZhang Jiaheng

1. Sort the first half

Bai YiweiCai WanxinLi HuichenLi YunqiLiu HaomingLiu ZhijianLu YizhouQiu ZhiTang Shuyang WanChengXie TianchengXu XiaojunYe ZihaoYu HongzhongZhao XueyuanZhou YuhaoZhu Qiuming

Page 70: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Xue ZhendongGao BichengSun XingyuanYang RunzheYou XiaotianZhang XuanChen LequnChen TianyaoKe SongyuHuang YuxiangXu ShichaoQiu WeiHuang JunxiangXu BowenPu YifeiYou YurongZhang Jiaheng

1. Sort the first half

Bai YiweiCai WanxinLi HuichenLi YunqiLiu HaomingLiu ZhijianLu YizhouQiu ZhiTang Shuyang WanChengXie TianchengXu XiaojunYe ZihaoYu HongzhongZhao XueyuanZhou YuhaoZhu Qiuming

2. Sort the second half

Page 71: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

1. Sort the first half

Bai YiweiCai WanxinLi HuichenLi YunqiLiu HaomingLiu ZhijianLu YizhouQiu ZhiTang Shuyang WanChengXie TianchengXu XiaojunYe ZihaoYu HongzhongZhao XueyuanZhou YuhaoZhu Qiuming

2. Sort the second half

Chen LequnChen TianyaoGao BichengHuang JunxiangHuang YuxiangKe SongyuPu YifeiQiu WeiSun XingyuanXu BowenXu ShichaoXue ZhendongYang RunzheYou XiaotianYou YurongZhang JiahengZhang Xuan

Page 72: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

1. Sort the first half

Bai YiweiCai WanxinLi HuichenLi YunqiLiu HaomingLiu ZhijianLu YizhouQiu ZhiTang Shuyang WanChengXie TianchengXu XiaojunYe ZihaoYu HongzhongZhao XueyuanZhou YuhaoZhu Qiuming

2. Sort the second half

Chen LequnChen TianyaoGao BichengHuang JunxiangHuang YuxiangKe SongyuPu YifeiQiu WeiSun XingyuanXu BowenXu ShichaoXue ZhendongYang RunzheYou XiaotianYou YurongZhang JiahengZhang Xuan

3. Merge the sorted arrays.

Page 73: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

1. Sort the first half

Bai YiweiCai WanxinLi HuichenLi YunqiLiu HaomingLiu ZhijianLu YizhouQiu ZhiTang Shuyang WanChengXie TianchengXu XiaojunYe ZihaoYu HongzhongZhao XueyuanZhou YuhaoZhu Qiuming

2. Sort the second half

Chen LequnChen TianyaoGao BichengHuang JunxiangHuang YuxiangKe SongyuPu YifeiQiu WeiSun XingyuanXu BowenXu ShichaoXue ZhendongYang RunzheYou XiaotianYou YurongZhang JiahengZhang Xuan

3. Merge the sorted arrays.

Page 74: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

1. Sort the first half

Bai YiweiCai WanxinLi HuichenLi YunqiLiu HaomingLiu ZhijianLu YizhouQiu ZhiTang Shuyang WanChengXie TianchengXu XiaojunYe ZihaoYu HongzhongZhao XueyuanZhou YuhaoZhu Qiuming

2. Sort the second half

Chen LequnChen TianyaoGao BichengHuang JunxiangHuang YuxiangKe SongyuPu YifeiQiu WeiSun XingyuanXu BowenXu ShichaoXue ZhendongYang RunzheYou XiaotianYou YurongZhang JiahengZhang Xuan

3. Merge the sorted arrays.

Page 75: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

1. Sort the first half

Bai YiweiCai WanxinLi HuichenLi YunqiLiu HaomingLiu ZhijianLu YizhouQiu ZhiTang Shuyang WanChengXie TianchengXu XiaojunYe ZihaoYu HongzhongZhao XueyuanZhou YuhaoZhu Qiuming

2. Sort the second half

Chen LequnChen TianyaoGao BichengHuang JunxiangHuang YuxiangKe SongyuPu YifeiQiu WeiSun XingyuanXu BowenXu ShichaoXue ZhendongYang RunzheYou XiaotianYou YurongZhang JiahengZhang Xuan

3. Merge the sorted arrays.

Bai Yiwei

Page 76: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

1. Sort the first half

Bai YiweiCai WanxinLi HuichenLi YunqiLiu HaomingLiu ZhijianLu YizhouQiu ZhiTang Shuyang WanChengXie TianchengXu XiaojunYe ZihaoYu HongzhongZhao XueyuanZhou YuhaoZhu Qiuming

2. Sort the second half

Chen LequnChen TianyaoGao BichengHuang JunxiangHuang YuxiangKe SongyuPu YifeiQiu WeiSun XingyuanXu BowenXu ShichaoXue ZhendongYang RunzheYou XiaotianYou YurongZhang JiahengZhang Xuan

3. Merge the sorted arrays.

Bai Yiwei

Page 77: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

1. Sort the first half

Bai YiweiCai WanxinLi HuichenLi YunqiLiu HaomingLiu ZhijianLu YizhouQiu ZhiTang Shuyang WanChengXie TianchengXu XiaojunYe ZihaoYu HongzhongZhao XueyuanZhou YuhaoZhu Qiuming

2. Sort the second half

Chen LequnChen TianyaoGao BichengHuang JunxiangHuang YuxiangKe SongyuPu YifeiQiu WeiSun XingyuanXu BowenXu ShichaoXue ZhendongYang RunzheYou XiaotianYou YurongZhang JiahengZhang Xuan

3. Merge the sorted arrays.

Bai Yiwei

Page 78: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

1. Sort the first half

Bai YiweiCai WanxinLi HuichenLi YunqiLiu HaomingLiu ZhijianLu YizhouQiu ZhiTang Shuyang WanChengXie TianchengXu XiaojunYe ZihaoYu HongzhongZhao XueyuanZhou YuhaoZhu Qiuming

2. Sort the second half

Chen LequnChen TianyaoGao BichengHuang JunxiangHuang YuxiangKe SongyuPu YifeiQiu WeiSun XingyuanXu BowenXu ShichaoXue ZhendongYang RunzheYou XiaotianYou YurongZhang JiahengZhang Xuan

3. Merge the sorted arrays.

Bai YiweiCai Wanxin

Page 79: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

1. Sort the first half

Bai YiweiCai WanxinLi HuichenLi YunqiLiu HaomingLiu ZhijianLu YizhouQiu ZhiTang Shuyang WanChengXie TianchengXu XiaojunYe ZihaoYu HongzhongZhao XueyuanZhou YuhaoZhu Qiuming

2. Sort the second half

Chen LequnChen TianyaoGao BichengHuang JunxiangHuang YuxiangKe SongyuPu YifeiQiu WeiSun XingyuanXu BowenXu ShichaoXue ZhendongYang RunzheYou XiaotianYou YurongZhang JiahengZhang Xuan

3. Merge the sorted arrays.

Bai YiweiCai Wanxin

Page 80: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

1. Sort the first half

Bai YiweiCai WanxinLi HuichenLi YunqiLiu HaomingLiu ZhijianLu YizhouQiu ZhiTang Shuyang WanChengXie TianchengXu XiaojunYe ZihaoYu HongzhongZhao XueyuanZhou YuhaoZhu Qiuming

2. Sort the second half

Chen LequnChen TianyaoGao BichengHuang JunxiangHuang YuxiangKe SongyuPu YifeiQiu WeiSun XingyuanXu BowenXu ShichaoXue ZhendongYang RunzheYou XiaotianYou YurongZhang JiahengZhang Xuan

3. Merge the sorted arrays.

Bai YiweiCai Wanxin

Page 81: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

1. Sort the first half

Bai YiweiCai WanxinLi HuichenLi YunqiLiu HaomingLiu ZhijianLu YizhouQiu ZhiTang Shuyang WanChengXie TianchengXu XiaojunYe ZihaoYu HongzhongZhao XueyuanZhou YuhaoZhu Qiuming

2. Sort the second half

Chen LequnChen TianyaoGao BichengHuang JunxiangHuang YuxiangKe SongyuPu YifeiQiu WeiSun XingyuanXu BowenXu ShichaoXue ZhendongYang RunzheYou XiaotianYou YurongZhang JiahengZhang Xuan

3. Merge the sorted arrays.

Bai YiweiCai WanxinChen Lequn

Page 82: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

1. Sort the first half

Bai YiweiCai WanxinLi HuichenLi YunqiLiu HaomingLiu ZhijianLu YizhouQiu ZhiTang Shuyang WanChengXie TianchengXu XiaojunYe ZihaoYu HongzhongZhao XueyuanZhou YuhaoZhu Qiuming

2. Sort the second half

Chen LequnChen TianyaoGao BichengHuang JunxiangHuang YuxiangKe SongyuPu YifeiQiu WeiSun XingyuanXu BowenXu ShichaoXue ZhendongYang RunzheYou XiaotianYou YurongZhang JiahengZhang Xuan

3. Merge the sorted arrays.

Bai YiweiCai WanxinChen Lequn

Page 83: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

1. Sort the first half

Bai YiweiCai WanxinLi HuichenLi YunqiLiu HaomingLiu ZhijianLu YizhouQiu ZhiTang Shuyang WanChengXie TianchengXu XiaojunYe ZihaoYu HongzhongZhao XueyuanZhou YuhaoZhu Qiuming

2. Sort the second half

Chen LequnChen TianyaoGao BichengHuang JunxiangHuang YuxiangKe SongyuPu YifeiQiu WeiSun XingyuanXu BowenXu ShichaoXue ZhendongYang RunzheYou XiaotianYou YurongZhang JiahengZhang Xuan

3. Merge the sorted arrays.

Bai YiweiCai WanxinChen Lequn

Page 84: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

1. Sort the first half

Bai YiweiCai WanxinLi HuichenLi YunqiLiu HaomingLiu ZhijianLu YizhouQiu ZhiTang Shuyang WanChengXie TianchengXu XiaojunYe ZihaoYu HongzhongZhao XueyuanZhou YuhaoZhu Qiuming

2. Sort the second half

Chen LequnChen TianyaoGao BichengHuang JunxiangHuang YuxiangKe SongyuPu YifeiQiu WeiSun XingyuanXu BowenXu ShichaoXue ZhendongYang RunzheYou XiaotianYou YurongZhang JiahengZhang Xuan

3. Merge the sorted arrays.

Bai YiweiCai WanxinChen Lequn

Page 85: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

1. Sort the first half

Bai YiweiCai WanxinLi HuichenLi YunqiLiu HaomingLiu ZhijianLu YizhouQiu ZhiTang Shuyang WanChengXie TianchengXu XiaojunYe ZihaoYu HongzhongZhao XueyuanZhou YuhaoZhu Qiuming

2. Sort the second half

Chen LequnChen TianyaoGao BichengHuang JunxiangHuang YuxiangKe SongyuPu YifeiQiu WeiSun XingyuanXu BowenXu ShichaoXue ZhendongYang RunzheYou XiaotianYou YurongZhang JiahengZhang Xuan

3. Merge the sorted arrays.

Bai YiweiCai WanxinChen Lequn

How do we sort the two halves?

Page 86: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Merge sort

Page 87: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Merge sortY, L, X, B, C, Q, Z, T

Page 88: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Merge sortY, L, X, B, C, Q, Z, T

Page 89: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Merge sortY, L, X, B, C, Q, Z, T

Y, L, X, B C, Q, Z, T

Page 90: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Merge sortY, L, X, B, C, Q, Z, T

Y, L, X, B C, Q, Z, T

Page 91: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Merge sortY, L, X, B, C, Q, Z, T

Y, L, X, B C, Q, Z, T

Y, L X, B

Page 92: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Merge sortY, L, X, B, C, Q, Z, T

Y, L, X, B C, Q, Z, T

Y, L X, B

Y L

Page 93: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Merge sortY, L, X, B, C, Q, Z, T

Y, L, X, B C, Q, Z, T

Y, L X, B

Y L

L,Y

Page 94: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Merge sortY, L, X, B, C, Q, Z, T

Y, L, X, B C, Q, Z, T

Y, L X, B

Y L

L,Y

X B

Page 95: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Merge sortY, L, X, B, C, Q, Z, T

Y, L, X, B C, Q, Z, T

Y, L X, B

Y L

L,Y

X B

B,X

Page 96: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Merge sortY, L, X, B, C, Q, Z, T

Y, L, X, B C, Q, Z, T

Y, L X, B

Y L

L,Y

X B

B,X

B, L, X, Y

Page 97: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Merge sortY, L, X, B, C, Q, Z, T

Y, L, X, B C, Q, Z, T

Y, L X, B

Y L

L,Y

X B

B,X

B, L, X, Y

Page 98: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Merge sortY, L, X, B, C, Q, Z, T

Y, L, X, B C, Q, Z, T

Y, L X, B

Y L

L,Y

X B

B,X

B, L, X, Y

C, Q Z, T

Page 99: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Merge sortY, L, X, B, C, Q, Z, T

Y, L, X, B C, Q, Z, T

Y, L X, B

Y L

L,Y

X B

B,X

B, L, X, Y

C, Q Z, T

C Q

Page 100: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Merge sortY, L, X, B, C, Q, Z, T

Y, L, X, B C, Q, Z, T

Y, L X, B

Y L

L,Y

X B

B,X

B, L, X, Y

C, Q Z, T

C Q

C,Q

Page 101: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Merge sortY, L, X, B, C, Q, Z, T

Y, L, X, B C, Q, Z, T

Y, L X, B

Y L

L,Y

X B

B,X

B, L, X, Y

C, Q Z, T

C Q

C,Q

Z T

Page 102: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Merge sortY, L, X, B, C, Q, Z, T

Y, L, X, B C, Q, Z, T

Y, L X, B

Y L

L,Y

X B

B,X

B, L, X, Y

C, Q Z, T

C Q

C,Q

Z T

T,Z

Page 103: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Merge sortY, L, X, B, C, Q, Z, T

Y, L, X, B C, Q, Z, T

Y, L X, B

Y L

L,Y

X B

B,X

B, L, X, Y

C, Q Z, T

C Q

C,Q

Z T

T,Z

C, Q, T, Z

Page 104: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Merge sortY, L, X, B, C, Q, Z, T

Y, L, X, B C, Q, Z, T

Y, L X, B

Y L

L,Y

X B

B,X

B, L, X, Y

C, Q Z, T

C Q

C,Q

Z T

T,Z

C, Q, T, Z

B, C, L, Q, T, X, Y, Z

Page 105: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Pseudocode for Mergesort

Page 106: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Pseudocode for Mergesort

mergesort(array X):

• n := |X|• if n = 1: return X• else:

– A := mergesort (X [1 . . . bn/2c])– B := mergesort (X [bn/2c+ 1 . . . n])– return merge(A,B)

Page 107: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Pseudocode for Mergesort

mergesort(array X):

• n := |X|• if n = 1: return X• else:

– A := mergesort (X [1 . . . bn/2c])– B := mergesort (X [bn/2c+ 1 . . . n])– return merge(A,B)

Page 108: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Pseudocode for merge

Page 109: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Pseudocode for merge

merge(A,B):• if |A| = 0 return B• else if |B| = 0 return A• else if A[1] < B[1]: return A[1] ◦merge(A[2 . . .], B)• else return B[1] ◦merge(A,B[2 . . .])

Page 110: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

How long does it take?

Page 111: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

How long does it take?

How many comparisons does it take?

Page 112: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

How long does it take?

How many comparisons does it take?

merge(A,B) requires at most |A|+ |B| − 1comparisons.

Page 113: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

How long does it take?

How many comparisons does it take?

merge(A,B) requires at most |A|+ |B| − 1comparisons.

blackboard

Page 114: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Y, L, X, B, C, Q, Z, T

Y, L, X, B C, Q, Z, T

Y, L X, B

Y L

L,Y

X B

B,X

B, L, X, Y

C, Q Z, T

C Q

C,Q

Z T

T,Z

C, Q, T, Z

B, C, L, Q, T, X, Y, Z

Page 115: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Y, L, X, B, C, Q, Z, T

Y, L, X, B C, Q, Z, T

Y, L X, B

Y L

L,Y

X B

B,X

B, L, X, Y

C, Q Z, T

C Q

C,Q

Z T

T,Z

C, Q, T, Z

B, C, L, Q, T, X, Y, Z

4× 1

Page 116: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Y, L, X, B, C, Q, Z, T

Y, L, X, B C, Q, Z, T

Y, L X, B

Y L

L,Y

X B

B,X

B, L, X, Y

C, Q Z, T

C Q

C,Q

Z T

T,Z

C, Q, T, Z

B, C, L, Q, T, X, Y, Z

4× 1

2× 3

Page 117: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Y, L, X, B, C, Q, Z, T

Y, L, X, B C, Q, Z, T

Y, L X, B

Y L

L,Y

X B

B,X

B, L, X, Y

C, Q Z, T

C Q

C,Q

Z T

T,Z

C, Q, T, Z

B, C, L, Q, T, X, Y, Z

4× 1

2× 3

1× 7

Page 118: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

If n = 2d . . .

Page 119: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

If n = 2d . . .

......

......

......

.... . .

. . .

Page 120: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

If n = 2d . . .

......

......

......

.... . .

. . . n2× 1

Page 121: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

If n = 2d . . .

......

......

......

.... . .

. . . n2× 1

. . .

Page 122: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

If n = 2d . . .

......

......

......

.... . .

. . . n2× 1

. . . n4× 3

Page 123: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

If n = 2d . . .

......

......

......

.... . .

. . . n2× 1

. . . n4× 3

n8× 7

Page 124: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

If n = 2d . . .

......

......

......

.... . .

. . . n2× 1

. . . n4× 3

n8× 7

Blackboard

Page 125: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Mergesort requires at most ndlog(n)e comparisons.

Page 126: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

This class 34

Set Size Steps

561

Jiaotong students 41297 852 mio

Runtime

1 second

Shanghai Residents 24 mio 294× 1012 95 hours

insertion sort: n(n−1)2

Page 127: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

This class 34

Set Size Steps

561

Jiaotong students 41297 852 mio

Runtime

1 second

Shanghai Residents 24 mio 294× 1012 95 hours

insertion sort: n(n−1)2

mergesort: ndlog(n)e

Page 128: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

This class 34

Set Size Steps

561

Jiaotong students 41297 852 mio

Runtime

1 second

Shanghai Residents 24 mio 294× 1012 95 hours

insertion sort: n(n−1)2

mergesort: ndlog(n)e

Steps Runtime

Page 129: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

This class 34

Set Size Steps

561

Jiaotong students 41297 852 mio

Runtime

1 second

Shanghai Residents 24 mio 294× 1012 95 hours

insertion sort: n(n−1)2

mergesort: ndlog(n)e

Steps Runtime

204

Page 130: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

This class 34

Set Size Steps

561

Jiaotong students 41297 852 mio

Runtime

1 second

Shanghai Residents 24 mio 294× 1012 95 hours

insertion sort: n(n−1)2

mergesort: ndlog(n)e

Steps Runtime

204

660,752

600 mio

Page 131: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

This class 34

Set Size Steps

561

Jiaotong students 41297 852 mio

Runtime

1 second

Shanghai Residents 24 mio 294× 1012 95 hours

insertion sort: n(n−1)2

mergesort: ndlog(n)e

Steps Runtime

204

660,752

600 mio

1 second

Page 132: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

This class 34

Set Size Steps

561

Jiaotong students 41297 852 mio

Runtime

1 second

Shanghai Residents 24 mio 294× 1012 95 hours

insertion sort: n(n−1)2

mergesort: ndlog(n)e

Steps Runtime

204

660,752

600 mio

1 second

15 minutes

Page 133: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

This class 34

Set Size Steps

561

Jiaotong students 41297 852 mio

Runtime

1 second

Shanghai Residents 24 mio 294× 1012 95 hours

insertion sort: n(n−1)2

mergesort: ndlog(n)e

Steps Runtime

204

660,752

600 mio

1 second

15 minutes

fast computerbad algorithm

Page 134: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

This class 34

Set Size Steps

561

Jiaotong students 41297 852 mio

Runtime

1 second

Shanghai Residents 24 mio 294× 1012 95 hours

insertion sort: n(n−1)2

mergesort: ndlog(n)e

Steps Runtime

204

660,752

600 mio

1 second

15 minutes

fast computerbad algorithm

slow computergood algorithm

Page 135: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

What will study this semester?

Page 136: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

What will study this semester?

1. Which areas do will we study?

Page 137: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

What will study this semester?

Sorting algorithms

1. Which areas do will we study?

Page 138: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

What will study this semester?

Sorting algorithms

Algorithms for numbers, matrices;

1. Which areas do will we study?

Page 139: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

What will study this semester?

Sorting algorithms

Algorithms for numbers, matrices; “algebraic algorithms”

1. Which areas do will we study?

Page 140: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

What will study this semester?

Sorting algorithms

Algorithms for numbers, matrices; “algebraic algorithms”

Graph algorithms

1. Which areas do will we study?

Page 141: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

What will study this semester?

Sorting algorithms

Algorithms for numbers, matrices; “algebraic algorithms”

Graph algorithms

1. Which areas do will we study?

Optimization algorithms

Page 142: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

What will study this semester?

Page 143: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

What will study this semester?

2. Which algorithmic ideas will we study?

Page 144: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

What will study this semester?

2. Which algorithmic ideas will we study?

Divide-and-conquer algorithms (like mergesort)

Page 145: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

What will study this semester?

2. Which algorithmic ideas will we study?

Divide-and-conquer algorithms (like mergesort)

Greedy algorithms (always do the next best thing)

Page 146: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

What will study this semester?

2. Which algorithmic ideas will we study?

Divide-and-conquer algorithms (like mergesort)

Greedy algorithms (always do the next best thing)

Dynamic programming (recursion unrolled)

Page 147: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

What will study this semester?

2. Which algorithmic ideas will we study?

Divide-and-conquer algorithms (like mergesort)

Greedy algorithms (always do the next best thing)

Dynamic programming (recursion unrolled)

many more . . .

Page 148: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

What will study this semester?

Page 149: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

3. Which aspects will we study?

What will study this semester?

Page 150: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

3. Which aspects will we study?

Is our algorithm correct?

What will study this semester?

Page 151: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

3. Which aspects will we study?

Is our algorithm correct?

How fast is it?

What will study this semester?

Page 152: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

3. Which aspects will we study?

Is our algorithm correct?

How fast is it?

How much memory does it use?

What will study this semester?

Page 153: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

3. Which aspects will we study?

Is our algorithm correct?

How fast is it?

How much memory does it use?

Efficiency

What will study this semester?

Page 154: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

3. Which aspects will we study?

Is our algorithm correct?

How fast is it?

How much memory does it use?

Are there more efficient algorithms?

Efficiency

What will study this semester?

Page 155: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Why should we study algorithms?

Page 156: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Why should we study algorithms?

Most algorithms are already implemented in a library.

Page 157: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Why should we study algorithms?

Most algorithms are already implemented in a library.

If I can implement an algorithm, why must Iunderstand the proof of (1) correctness; (2) runningtime?

Page 158: Algorithm Design and Analysis - SJTUbasics.sjtu.edu.cn/~dominik/teaching/2015-cs214/2015-09-15-lectur… · Lu Yizhou Tang Shuyang Xue Zhendong Gao Bicheng Sun Xingyuan Yang Runzhe

Why should we study algorithms?

Most algorithms are already implemented in a library.

If I can implement an algorithm, why must Iunderstand the proof of (1) correctness; (2) runningtime?

You will always face new problems for whichyour library has no implemented solution!