算法导论第一次习题课.

Slides:



Advertisements
Similar presentations
乌鲁木齐市高级中学 杨帆 2.2 用样本估计总体 2.2.1 用样本的频率分布估计总体分布 第一课时.
Advertisements

—— 海淀区高三化学《考试说明》解读 2015 年 1 月 29 日 学习《考试说明》 备考理综化学.
600年前,鄭和率領世界上最強大的艦隊,浩浩蕩蕩的駛入印度洋,展開一場「文化帝國」的海上大秀。
藥物濫用 華德學校上午校 黃秀雯.
新編多元性向測驗 測驗說明 輔導室
党的十八届四中全会 依法治国精神解读. 党的十八届四中全会 依法治国精神解读 一、十八届四中全会概况 中国共产党第十八届中央委员会第四次全体会议,于2014年10月20日至23日在北京举行。 全会审议通过了《中共中央关于全面推进依法治国若干重大问题的决定》。
2015高考试题分析 及高三第一轮复习心得 ----余江一中物理组
证券市场法律制度与监督管理 作者:张学亮.
營利事業所得稅查核準則 相關概念介紹 南區國稅局 新營分局 林俊標 各位學員大家好:
我怀念的乡村记忆 陈秀华 社会工作0841.
在《命运交响曲》 音乐声中 安静我们的心 迎接挑战.
沟通技巧 主讲:涂育俊.
VS 兒童及少年身心發展 幼保三甲 幼兒期 青少年期 4A1I0014 陳佳瑩 4A1I0023 尤秀惠
101年國中畢業生多元進路宣導 國中部註冊組 100年10月29日.
高中職優質化專題 教育研究博士班二年級 游宗輝.
海星國中部直升方案說明 報告人:教務處 陳博文主任
情緒與壓力管理─背部舒緩 指導老師:彭易璟 第六組組員:會資三乙 499A0047 謝宛霖 會資三乙 499A0019 吳汶諭
101年度十二年國民基本教育 國民中學校長專業研習 校長落實補救教學、適性輔導 中輟生的預防與復學輔導之實務作為
第5章 排序与查找 PART A 《可视化计算》.
歡迎各位老師 蒞校參訪 召集人、各位委員、同仁大家好,我是林淑玟,負責教務行政進行簡報 報告人:林淑玟 中華民國九十九年三月二十三日.
指導老師:楊淑娥 組別:第一組 成員:劉怡萱4a0i0066 吳珮瑜4a0i0070 林秋如4a0i0075 陳婉婷4a0i0076
組員:4A140013張瓊云 4A1I0039石宜芬 4A1I0909許峻綱 指導老師:王立杰老師
學 號:997I0010、997I0024 組 員:洪韋鈴、王婷婷 日 期: 指導老師:王立杰 老師
Performance Evaluation
第十章 内部排序 知识点3:快速排序.
第三节 细胞外被与细胞外基质 1、胶原 细胞外被(糖萼)指细胞外覆盖的一层粘多糖(糖蛋白或糖脂)
第八章 查找.
第十章 内部排序 10.1 概述 10.2 插入排序 直接插入排序 其他插入排序 希尔排序
公司法(六) 股份有限公司 1.
第8章 查找 数据结构(C++描述).
指導老師:陳韻如 班級:幼保二甲 姓名:林靜宜 學號:4A0I0033
高中算法与程 序设计 教学建议 ---循环结构部分
課程名稱:資料結構 授課老師:_____________
分治演算法 各個擊破獲得最後勝利 國立中央大學 資工系 江振瑞 教授.
主讲人: 吕敏 { } Spring 2012 ,USTC 算法基础 主讲人: 吕敏 { } Spring 2012 ,USTC.
第8章 排序.
数组 第 6 章.
排序 Sorting.
第9章 排序.
第十章 排序與搜尋.
搜尋資料結構 Search Structures.
第4章 程序控制结构与算法基础.
流程控制、陣列 台南市聖功女子高級中學 毛全良.
電腦解題─流程圖簡介 臺北市立大同高中 蔡志敏老師.
数据结构 -Maple Related- 牟克典 数学科学学院信息科学系 2012秋季 1/16/2019.
Sorting 排序 Bubble Sort O(n2) Insert Sort Selection Sort Quick Sort
碳汇资本在旅游融资中的应用研究 阚如良 梅雪 孔婷 经济与管理学院旅游管理系
数据结构 Data Structure CSU 主讲人:王国军,郑瑾 中南大学信息院计科系
第九章 查找 2019/2/16.
網路遊戲版 幸福農場168號.
For x = 0 To 9 For y = 0 To 9 z = *x + 10*y …… Next y
教 师:曾晓东 电 话: E_mail: 计算机软件技术基础 教 师:曾晓东 电 话: E_mail:
江西财经大学信息管理学院 《数据库应用》课程组2007
经典算法之 冒 泡 排 序.
資料結構與C++程式設計進階 排序與搜尋 講師:林業峻 CSIE, NTU 6/ 14, 2010.
计算机算法基础 周中成 苏州科技学院应用数学系 2019/4/18.
计算机问题求解 – 论题1-4 - 基本的算法结构 2018年10月09日.
第九章 排序 概述 插入排序 快速排序 交换排序(起泡排序) 选择排序 归并排序.
Lucene 算法介绍 IR-Lab 胡晓光.
二分查找的应用 ——李江贝, 郝琰 2017年9月28日.
本节内容 Lua基本语法.
單元名稱:結構化程式設計 報告人 劉洲溶.
問題解決與流程圖 高慧君 台北市立南港高中 2006年12月22日.
Multi-threaded Algorithm 3
元 排 序 法.
顺序查找与二分查找复习.
算法的基本思想: 第6章 内部排序 6.2 气泡排序 将待排序的记录看作是竖着排列的“气泡”,关键字较小 的记录比较轻,从而要往上浮。
1.2.3 循环语句.
講師:劉俊民(金剛) Idea 創意應用科技有限公司
Presentation transcript:

算法导论第一次习题课

2.1-2 INSERTION-SORT非升序排序 INSERTION-SORT(A) for j←2 to length[A] do key←A[j] //Insert A[j] into the sorted sequence A[1..j-1] i←j-1 while i>0 and A[i]<key do A[i+1] ← A[i] i←i-1 A[i+1] ← key 有同学改成从length[A]到2循环,此时A[ j+1…length[A]]是循环不变式

2.1-4 两个二进制整数相加 A、B各存放了一个二进制n位整数的各位数值,现在通过二进制的加法对这两个数进行计算,结果以二进制形式把各位上的数值存放在数组C中 key存储临时计算结果,flag为进位标志符,按位相加,8、9行不能少 BINARY-ADD(A,B,C) 1 flag← 0 2 for j←1 to n 3 do key←A[j]+B[j]+flag //注意flag要清为0 flag← 0 7 C[j] ← key mod 2 8 if key >1 9 flag←1 10 if flag=1 11 C[n+1] ← 1 2.2-1 ө(n^3)

2.2-2 Selection排序 loop invariant: 从A[1]到A[j-1],这j-1个数是排好序的,并且是A中最小的j-1个数。 最好和最差情况都是ө(n^2),因为两层循环的复杂度是一样的 许多同学在第7行中直接exchange 另外,许多同学都没有对 loop invariant 进行说明 1 Select-sort(A,n) 2 for i←1 to n-1 3 min←A[i] 4 index←i 5 for j←i+1 to n 6 if A[j]< min 7 index←j 8 min←A[j] 9 if index != i 10 A[index]←A[i] 11 A[i]←min

2.3-2 改写MERGE过程,使之不使用哨兵元素。加一个判断把剩下哪一部分放入数组中 2.3-5二分查找算法 Binary-Search(A,v,l,r) if l>r then return NIL mid=(l+r)/2 // l+(r-l)/2 If v=A[mid] then return mid If v>A[mid] then return binary-search(A,v,mid+1,r) else return binary-search(A,v,l,mid-1) 当mid+1错写成mid的时候,会使递归一直无法结束 例:取A={3,4},v=9,则l=1,r=2,mid=1 binary-search(A,v,1,2) mid =(l+r)/2=1 因v>A[mid],执行binary-search(A,v,1,2)

2.3-7判断出集合S中是否存在有两个其和等于x的元素 算法思想:首先要对n个数进行排序,用快排复杂度为 ,然后再在排序后的数组中查找是否存在两数之和为x。假设排序后数组中元素为非降序列: x=15 j i 1 3 5 7 9 10 13 15

3.1-1证明,可取c1=1/2, c2=1 3.1-5证明充分性的时候,不要忘了取n0=max(n1,n2) 3.2-2基本数学变换,略

3.2-4函数是否有界问题 3.2-7 证明: 用归纳法证明

4.1-2 证明T(n)=2T(n/2)+n的解为 证明:用代换法

4.1-4 证明合并排序算法的“准确”递归式(4.2)的解为

4.1-6:通过改变变量求解递归式 4.2-1:利用递归树来猜测递归式T(n)=3T(n/2)+n的一个好的渐近上界,并利用代换法来证明你的猜测 4.2-2:利用递归树来证明递归式T(n)=T(n/3)+T(2n/3)+cn的解是 其中c是一个常数 4.2-4 :利用递归树来找出递归式T(n)=T(n-a)+T(a)+cn的渐近紧确解,其中a>=1且c>0是常数

4.3-1 用主方法确定渐近界: T(n)=4T(n/2)+n a=4,b=2,应用规则1)有 b) T(n)=4T(n/2)+n^2 a=4,b=2,应用规则2)有 c) T(n)=4T(n/2)+n^3 a=4,b=2,应用规则3)有 取c≥1/2就可以使得4f(n/2)≤cf(n),所以T(n)=ө(n^3)

4.3-3 证明二分查找递归式T(n)=T(n/2)+ө(1)的解是T(n)=ө(lgn) 4.3-5 考虑在某个常数c<1时规则性条件af(n/b)<=cf(n), 举一个常数a>=1,b>1以及一个函数f(n), 满足主定理第三种情况中的除了规则条件之外的所有条件的例子

6.1-3 证明在一个最大堆的某个子树中,最大元素在该子树的根上 证明:使用反证法,如果不是最大元素的话就违反了A[PARENT(i)]>=A[i],产生矛盾 6.1-5 不一定是最小堆,降序时是最大堆 6.1-6 不是最大堆,{5,6,7}这个子树不满足最大堆定义

6.2.1 略 6.2.2

6.2.6 最坏情况下,i=1而且A[i]为堆中最小值,此时需要递归调用 lgn 次,所以为Ω(lgn) 6.3.1 略 6.3.3 注意各个节点高度的定义:与最远叶子节点的距离

6.4.1 略 6.4.3 对排序中,不管是元素是增序还是降序,建堆的时间均为O(n), n-1次调用MAX-HEAPIFY, 需要时间O(nlgn). 6.4.4 略

6.5.1 提取大顶堆最大值,见HEAP_EXTRACT-MAX(A)算法 6.5.2 向堆中插入新元素,注意先生成一个新的元素并赋值为-∞. 6.5.3 略

如果遇到中英版有出路,请标注你是使用哪一版本,方便我们批发作业 7.1-2 :返回是r //不是r-1 7.1-1 :略 如果遇到中英版有出路,请标注你是使用哪一版本,方便我们批发作业 7.1-2 :返回是r //不是r-1 一种理解:只对全部相同这种情况进行处理,直接返回(p+r)/2。 另一种理解:对部分相同也是取其中间位置,具体思路: 使用一个计数器,记录当前划分元相同个数(4),算法返回的值i+1(r-1)记为high(可以通过减去计数器+1(r-1-4+1)记为low,确定其相同范围)与(p+r)/2 比较,如果小于high且low<=(p+r)/2;返回(p+r)/2,如果小于且low>(p+r)/2,返回为low,否则返回为high. i p r 1 3 4 5 5 5 5 15 (p+r)/2

7.2.2 当A中元素都相等时,PARTITION算法中第4行总满足,将n个数划分成1和n-1两部分,此时快排运行时间为Ω(n^2) 7.4.2 最优情况下:递归式 根据主定理求解Ω(nlgn) 7.4.3 略

end THANKS