第五章 减治法
正式发布版:全国土地整治规划(2011-2015)

全国土地整治规划20112015第一章土地整治面临的形势13第一节土地整治取得的成就13第二节十二五时期面临的形势16第二章指导思想和基本原则与目标任务20第一节指导思想和基本原则20第二节规划目标22第三节主要任务23第三章统筹推进土地整治26第一节推进全域土地整治26第二节统筹区域土地整治27第三节完善统筹推进土地整治机制30第四章大力推进农用地整治30第一节大规模建设旱涝保收高标准基本农田31第二节切实加强耕地质量建设33第三节适度开发宜耕后备土地36第四节积极推进其他农用地整治38第五章规范推进农村建设用地整治40第一节统筹规划乡村土地利用40第二节稳妥推进村庄土地整治41第三节严格规范城乡建设用地增减挂钩试点43ii第六章有序开展城镇工矿建设用地整治44第一节积极开展旧城镇改造45第二节积极开展旧工矿改造46第三节稳步推进城中村改造
——形成了良好的工作格局,奠定了土地整治持续发展的基 础。探索完善土地整治组织方式,形成了“政府主导、国土搭台、 部门联动、群众参与、整合资源、整体推进”的工作机制;加强土 地整治规范和标准建设,先后颁布《土地开发整理规划编制规程》、 《土地开发整理项目规划设计规范》、《土地开发整理工程建设标 准》等技术规范;部署开展农村土地所有权登记发证,并依托土 地利用“一张图”工程建立了土地整治监管平台,全面加强耕地数 量、质量、权属管理和动态监管;制定了一系列规章制度,完善 土地整治专项资金使用管理;加强了队伍建设,截至 2010 年,31 个省(区、市)和新疆生产建设兵团成立县级以上土地整治机构 2060 个。土地整治工作基本形成了规划体系比较完善、资金使用 比较规范、科技支撑有力、全面全程监管的工作格局,为持续深 入推进土地整治奠定了坚实基础。
5-第五章 减治法

2.比较v和 A[x]
确定查找范围
5.6.3 二叉查找树的查找和插入
• 二叉查找树:左子树的值小于根顶点,右 子树大于根顶点。
小结
5.4 生成组台对象的算法
• 组合问题 1、计数 2、结构
组合问题
5.4.1 生成排列
用减一思想生成{1,2,…,n}所有排列。
Johnson-trotter算法
• 字典序---增序排队
5.4.2 生成子集
1、挤压序: 所 2、是否存在—种生成比特串的最小变化算法,使得每
一个比特串和它的直接前趋之间仅仅相差一 个比特 位。
n / 2 ,它要求找出这样一个元素,该元素比列表中的—半元素大,又比另—半元素
小。这个中间的值被称为中值,它在数理统计中是—个非常重要的量。
• 类似快速排序的分区做法
• 例
15 15
效率分析: 1)平均效率 2)最差效率
5.6.2 插值查找
插值查找用于有序数组,“插值”代替了折 半查找中的中间值 1.计算
• 最坏输入是一个严格递减的数组,这种输 入的比较次数是
• 最好的情况下(升序),在外部循环的每 次送代中,比较操作只执行一次
• 平均
5.2深度优先查找和广度忧先查找
• 什么叫图的遍历 从图的任意点出发沿着一些边访问图中的 所有顶点,且使每个顶点仅被访问一次,这就 叫图的遍历. • 我们来看一下图的遍历的两种方法: 1.深度优先搜索 2.广度优先搜索
第一种算法是深度优先查找的一个简单应用:执行一次DFS遍 历,并记住顶点变成死端(即退出遍历栈)的顺序。将该次序反过来 就得到了拓扑排序的一个解。
第二种算法基于减(减一)治技术的一个直 接实现:不断地做这样—件事,在余下的有向 图中求出一个源,它是一个没有输入边的顶点, 然后把它和所有从它出发的边都删除。
算法设计与分析部分算法伪代码

第三章 蛮力法1.选择排序SelectionSort(A[0..n-1])for i=0 to n-2 domin=ifor j=i+1 to n-1 doif A[j]<A[min]min=jswap A[i] and A[min]2.冒泡排序BubbleSort(A[0..n-1])// 输入:数组A,数组中的元素属于某偏序集// 输出:按升序排列的数组Afor i=0 to n-2 dofor j=0 to n-2-i doif A[j+1]<A[j] swap A[j] and A[j+1]3.改进的冒泡算法ALGORITHM BubbleSortImproved( A[0,…,n –1] )// 冒泡排序算法的改进// 输入:数组A,数组中的元素属于某偏序集// 输出:按升序排列的数组Afor i ← 0 to n – 2 doflag ← Truefor j ← 0 to n – 2 – i doif A[j+1] < A[j]swap(A[j], A[j+1])flag ← False// 如果在某一轮的比较中没有交换,则flag为True,算法结束returnif flag = True4. 顺序查找算法算法 SwquentialSearch2(A[0...n],k)//顺序查找算法的实现,它用了查找键来作限位器//输入:一个n个元素的数组A和一个查找键K//输出:第一个值等于K的元素的位置,如果找不到这样的元素就返回 -1A[n]<--ki<--0while A[i]!=K doi<--i+1if i<n return iElse return -15. 蛮力字符串匹配算法 BruteForceStringMatch(T[0...n-1],P[0...m-1])//该算法实现了蛮力字符串匹配代表一段文本//输入:一个n个字符的数组T[0...n-1]// 一个m个字符的数组P[0..m-1]代表一个模式//输出:如果查找成功的话,返回文本的第一个匹配字串中第一个字符的位置, // 否则返回-1For i<--0 to n-m doj<--0While j<m and P[j]=T[i+j]doj<--i+1If j=m return ireturn -1合并排序最差Θ(nlog2n)快速排序最优Θ(nlog2n)最差Θ(n2)平均Θ(1.38nlog2n)选择排序 Θ(n2)冒泡排序 Θ(n2)插入排序最差Θ(n2)最优 Θ(n)平均 Θ(n2)第四章 分治法合并排序算法 MergeSort(A[0..n-1] )排序 // 递归调用mergesort来对数组 A[0...n-1]// 输入:一个可排序数组A[0..n-1]// 输出:非降序排列的数组A[0..n-1]if n > 1n/2 -1]copy A[0.. n/2 -1] to B[0..n/2 -1]copy A[ n/2 ..n-1] to C[0..MergeSort( B )MergeSort( C )Merge( B,C,A )两个数组合并的算法算法 Merge(B[0..p-1],C[0..q-1],A[0..p+q-1])//将两个有序数组合并成一个有序的数组和C[0...q-1]//输入:两个有序数组B[0...p-1]//输出:A[0..p+q-1]中已经有序存放了B和C中的元素 i=0,j=0,k=0;while i<p and j<q do≤C[j]if B[i]A[k]=B[i], i=i+1elseA[k]=C[j], j=j+1k=k+1if i=pcopy C[j..q-1] to A[k..p+q-1]elsecopy B[i..p-1] to A[0..p+q-1]快速排序算法QuickSort(A[l..r])// 使用快速排序法对序列或者子序列排序或者序列本身A[0..n-1]// 输入:子序列A[l..r]// 输出:非递减序列Aif l < rs ← Partition( A[l..r] )QuickSort( A[l..s-1] )QuickSort( A[s+1..r] )//s是中轴元素/基准点,是数组分区位置的标志实现分区的算法Partition( A[l..r] )// 输入:子数组A[l..r]// 输出:分裂点/基准点pivot的位置p ← A[l]i ← l; j ← r+1repeat≥ prepeat i ←i + 1until A[i]≤ prepeat j ← j – 1 until A[j]swap( A[i], A[j] )≥ juntil iswap( A[i], A[j] )swap( A[l], A[j] )return j折半查找BinarySearch( A[0..n-1], k )// 输入:已排序大小为n的序列A,待搜索对象k// 输出:如果搜索成功,则返回k的位置,否则返回-1 l=0,r=n-1;While l≤rmid= (l+r)/2if k = A[mid] return midelse if k < A[mid] r=m-1else l=m+1return -1Strassen矩阵Strassen方法M1=A11(B12-B22)M2=(A11+A12)B22M3=(A21+A22)B11M4=A22(B21-B11)M5=(A11+A22)(B11+B22)M6=(A12-A22)(B21+B22)M7=(A11-A21)(B11+B12)第五章 减治法插入排序ALGORITHM InsertionSort( A[0..n-1] )// 对给定序列进行直接插入排序// 输入:大小为n的无序序列A// 输出:按非递减排列的序列Afor i ← 1 to n-1 dotemp ← A[i]j ← i-1while j ≥ 0 and A[j] > temp doA[j+1] ← A[j]j ← j –1A[j+1] ←temp深度优先查找算法 BFS(G)//实现给定图的深度优先查找遍历//输入:图G=<V,E>//输出:图G的顶点,按照被DFS遍历第一次访问到的先后次序,用连续的整数标记,将V中的每个顶点标记为0,表示还“未访问”count =0//记录这是第几个访问的节点标记为 unvisitedmark each vertex with 0//∈ V dofor each vertex vif v is marked with 0dfs(v)dfs(v)//递归访问所有和v相连接的未访问顶点,然后按照全局变量count的值//根据遇到它们的先后顺序,给它们附上相应的数字count = count + 1mark v with countv dofor each vertexw adjacent toif w is marked with 0dfs(w)广度优先BFS(G)/实现给定图的深度优先查找遍历//输入:图G=<V,E>//输出:图G的顶点,按照被BFS遍历第一次访问到的先后次序,用连续的整数标记,将V中的每个顶点标记为0,表示还“未访问”count =0mark each vertex with 0for each vertex v∈ V dobfs(v)bfs(v)//递归访问所有和v相连接的未访问顶点,然后按照全局变量count的值//根据遇到它们的先后顺序,给它们附上相应的数字count = count + 1mark v with countinitialize queue with vwhile queue is not empty doa = front of queuefor each vertex w adjacent to a doif w is marked with 0count = count + 1mark w with countadd w to the end of the queueremove a from the front of the queue拓扑排序第六章 变治法Gauss消去法GaussElimination(A[1..n], b[1..n])// 输入:系数矩阵A及常数项 b// 输出:方程组的增广矩阵等价的上三角矩阵for i=1 to n doA[i][n+1] =b[i]for j= i+1 to n dofor k = i to n+1 do– A[i][k]*A[j][i]/A[i][i]A[j][k] = A[j][k]堆排序堆排序主要包括两个步骤:对于给定的数组构造相应的堆。
减治法

子问题 的规模是n/2 子问题的解
原问题的解
图5.1 减治法的典型情况(减半技术)
对于给定的整数a和非负整数n,计算an的值。
利用减治法,如果n=1,可以简单地返回a的值,如果n是偶数并且n>1,可 以把该问题的规模减半,即计算an/2的值,而且规模为n的解an和规模减半 的解an/2之间具有明显的对应关系:an=(an/2)2,如果n是奇数并且n>1,可 以先用偶指数的规则计算a(n-1),再把结果乘以a。所以,应用减治技术得到 如下计算方法:
排序问题中的减治法
堆排序
选择问题
堆排序
例
28 25 36 18 32 28 36 25 18 16 32 25 16 36 25 18 16 36 28 32
28
18 16
32
堆排序是利用堆(假设利用大根堆)的特性进 行排序的方法,其基本思想是:首先将待排序 的记录序列构造成一个堆,此时,选出了堆中 所有记录的最大者即堆顶记录,然后将它从堆 中移走(通常将堆顶记录和堆中最后一个记录 交换),并将剩余的记录再调整成堆,这样又 找出了次大的记录,以此类推,直到堆中只有 一个记录为止。
n 1 n 1
查找问题中的减治法
折半查找
二叉查找树
折半查找
在有序表{ 7, 14, 18, 21, 23, 29, 31, 35, 38, 42, 46, 49, 52 }中查找值为14的 记录的过程如图所示。
0 1
7
2
14
3
18
4
21
5
23
6
29
7
31
8
35
9
38
10
42
第 五 章 减治法

算 分 析 与 设 计
西南科技大学
金块问题
有一个老板有一袋金块。每个月将有两 名雇员会因其优异的表现分别被奖励一 个金块。按规矩,排名第一的雇员将得 到袋中最重的金块,排名最后的雇员将 得到袋中最轻的金块。如果每个月都有 新的金块周期性的加入袋中,则每个月 都必须找出最轻和最重的金块。假设有 一台比较重量的仪器,我们希望用最少 的比较次数找出最轻和最重的金块。
算 分 析 与 设 计
西南科技大学
直接插入排序实现方法
减一技术下,该方法遵循的思路是:假设对较 小数组 A[0..n-2]排序问题已经解决了,得到一 个大小为n-1的有序数组。然后将要排序的第n 个元素,插入到数组的适合位置上,得到大小 为n的有序数组 A[0..n-1]。伪代码如下: void InsertionSort(a[]) {for(i=1;i<n-1;i++) //从第二个记录起进行插入 for (j=i-1; j>=0;j--) if a[j+1]-(a[j]) < 0 Swap(a[j+1], a[j]); }
算 分 析 与 设 计
西南科技大学
俄式乘法☺ 俄式乘法☺
算法思想:两个A和B数相乘,把数A每 次除以2,直到为0为止,另一个数B则不 断加倍,若第数A未除尽时,则数B应加 上自己。 7×8的计算步骤: 7 8 3 16+ 8 1 32+ 16 + 8
算 分 析 与 设 计
西南科技大学
约瑟夫斯问题( 约瑟夫斯问题(一)
算 分 析 与 设 计
西南科技大学
减常数因子减治法
减常数因子减治法的一个 典型算法就是折半查找 (Bin_Search)。它搜索 一个排序好的数组,将查 找目标与数组的中间位置 的元素相比,比它大则递 归查找数组的左边,反之 亦然。这个每次迭代都将 问题减小为原来的1/2。 折半查找每次都消去一个 常数因子2,因此其时间 效率为O(logn)。
CNAS-GL004:2018《标准物质_标准样品的使用指南》 - 中国合格评定

标准物质/标准样品的使用指南 Guidance on Using Reference Materials
(IDT ISO Guide 33:2015)
中国合格评定国家认可委员会
2018 年 3 月 1 日 发布
2018 年 3 月 1 日 实施
CNA共 34 页
目录
前言 ............................................................................. 2 1 范围 ........................................................................... 3 2 规范性引用文件 ................................................................. 3 3 术语及定义 ..................................................................... 3 4 符号 ........................................................................... 5 5 约定 ........................................................................... 5 6 标准物质/标准样品及其在测量中的作用 ............................................ 6 7 标准物质/标准样品和有证标准物质/标准样品的使用 ................................ 11 8 精密度的评估 .................................................................. 12 8.1 通则 ........................................................................ 12 8.2 重复测量次数 ................................................................ 12 8.3 对标准物质/标准样品的要求.................................................... 13 8.4 测量 ........................................................................ 13 8.5 数据处理 .................................................................... 14 8.6 精密度的计算和评估........................................................... 14 9 偏倚的评估 .................................................................... 15 9.1 总则 ........................................................................ 15 9.2 偏倚校核的途径 .............................................................. 15 9.3 偏倚数据应用 ................................................................ 16 10 校准 ......................................................................... 17 10.1 概述 ....................................................................... 17 10.2 建立计量溯源性.............................................................. 17 10.3 校准模型 ................................................................... 18 11 为其它材料赋值 ............................................................... 18 11.1 总则 ....................................................................... 18 11.2 纯物质 ..................................................................... 19 11.3 称量法和容量法.............................................................. 20 12 约定标尺 ..................................................................... 21 12.1 总则 ...................................................................... 21 12.2 pH 标尺 ..................................................................... 22 12.3 辛烷值 ..................................................................... 22 13 有证标准物质/标准样品和标准物质/标准样品的选择................................ 23 13.1 总则 ....................................................................... 23 13.2 有证标准物质/标准样品的选择................................................. 24 13.3 标准物质/标准样品的选择..................................................... 26 13.4 与测量系统的相关性.......................................................... 26 附录 A ........................................................................... 28 附录 B ........................................................................... 29 附录 C ........................................................................... 32 参考文献 ........................................................................ 33
甘肃省药品行政处罚自由裁量适用规则

甘肃省药品行政处罚自由裁量适用规则甘肃省药品行政处罚自由裁量适用规则(征求意见稿)第一章总则第一条为保障和监督全省药品监督管理部门依法行使行政处罚自由裁量权,维护公民、法人和其他组织的合法权益,根据《中华人民共和国行政处罚法》《市场监督管理行政处罚程序暂行规定》《甘肃省规范行政处罚自由裁量权规定》等相关法律、法规、规章的规定,制定本规则。
第二条本规则所称行政处罚自由裁量权,是指全省药品监督管理部门依法行使行政处罚权时,享有的是否给予行政处罚、给予何种行政处罚和给予何种裁量幅度行政处罚的自主决定权和处置权。
第三条本规则所称全省药品监督管理部门是指省药品监督管理局办案机构及其派出机构,各级市场监督管理部门药品监管执法机构。
第四条行使行政处罚裁量权应当遵循法定、合理、公平公正公开、过罚相当、处罚与教育相结合原则。
对同一违法案件的多个当事人实施行政处罚时,应当区分不同情节及其在违法活动中所起的作用,分别确定相应的处罚种类和处罚幅度。
法律法规或相关司法解释有减轻或免予处罚、从重处罚规定的,从其规定。
第五条全省药品监督管理部门行使行政处罚自由裁量权,应当从法律目的、违法事实、性质、情节、社会危害程度及案件主体、客体、主观、客观等方面,结合以下情节进行综合裁量:(一)违法产品的风险性;(二)涉案产品的数量、货值金额;(三)违法行为的侵害对象和持续时间;(四)当事人配合查处表现及整改情况;(五)其他依法应当考虑的裁量因素。
第二章实体规则第六条按照违法行为的事实、性质、情节、产品的风险性以及社会危害程度,行政处罚裁量阶次划分为不予、减轻、从轻、一般、从重处罚。
情节严重属从重处罚中的严重情形。
(一)不予处罚,是指依法对特定违法行为不给予行政处罚。
(二)减轻处罚,是指依法在行政处罚的法定种类和法定幅度的最低限度以下适用处罚。
(三)从轻处罚,是指依法在行政处罚的法定种类和法定幅度内适用较轻的种类或者选择法定幅度中较低的部分予以处罚。
2024年五道五治方案范文

2024年五道五治方案范文2024年,我国进入全面建设社会主义现代化国家的关键时期。
为了应对当前社会发展面临的诸多挑战和问题,制定一套科学合理、可行性强的五道五治方案,是我国当前的重要任务之一。
本文将以____字的篇幅,阐述2024年五道五治方案的主要内容及其具体实施措施。
一、道法自然治理方案道法自然治理方案是指在推动生态文明建设的同时,加强对自然资源的合理利用与保护,以实现人与自然和谐发展。
具体措施包括:1.加强环境保护。
加强大气、水、土壤、声音等环境污染治理,提升环境质量,确保人民群众健康和生态安全。
2.推动生态农业。
大力发展有机农业、绿色农业,倡导绿色种植、绿色养殖,推行农产品追溯制度,提高农产品质量和安全。
3.加强生态修复。
加大生态环保投入,推动湿地保护、河流治理、退耕还林还草等工程,修复生态系统功能,提高生态系统稳定性和适应能力。
4.推进节能减排。
加强各类能源的高效利用,推动清洁能源的开发和应用,降低能源消耗和排放量,促进能源结构调整。
5.加强自然文化保护。
通过加强对自然文化遗产的保护和传承,唤起人民群众对自然的敬畏之情,增强保护环境的意识和行动力。
二、道善民生治理方案道善民生治理方案是指在解决民生问题、改善人民生活状况上下功夫,提高人民群众的获得感、幸福感和安全感。
具体措施包括:1.推动就业创业。
加强职业培训,扩大公共就业岗位,鼓励创业,提高就业质量和稳定性,促进人民群众实现可持续发展。
2.加强社会保障体系建设。
完善社会保险制度,提高社保待遇水平,加大对特殊群体的保障力度,确保人民群众基本生活权益。
3.加强教育公平。
加大教育投入,完善教育资源公平分配机制,推动教育优质均衡发展,提高基础教育质量和公平性。
4.促进健康中国建设。
加强医疗卫生体制改革,提高基层医疗服务能力,推动公共卫生体系建设,提高人民群众健康水平。
5.加强文化建设。
加大对文化事业的投入,鼓励创作和传播优秀文化产品,培育和弘扬社会主义核心价值观,提升人民群众文化素质。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C4 C3 C5 C2
C1
2015-1-5 27
5.3 拓扑排序-减一法直接实现
N规模和n-1规模如何建立联系?
每次去掉一个源(没有输入边的顶点)
C4 C3 C5
C1,C2
2015-1-5 28
5.3 拓扑排序-减一法直接实现
N规模和n-1规模如何建立联系?
每次去掉一个源(没有输入边的顶点)
C4
C5
C1,C2,C3
2015-1-5 29
5.3 拓扑排序-减一法直接实现
N规模和n-1规模如何建立联系?
每次去掉一个源(没有输入边的顶点)
C5
C1,C2,C3,C4,C5
2015-1-5 30
5.4 生成组合对象的算法
5.4.1 生成排列
思考题1:给定数据{1、2、3、4},如何在 计算机中编程实现全排列?
5.2.2 广度优先查找-基本思想
基本思想
访问一个节点A 若A有未访问相邻节点,
访问所有与A相邻节点
以一个相邻起点进行BFS
j g a c d f b i e h
否a-c-d-e-f-b-g-h-j-i
2015-1-5 19
5.2.1 广度优先查找-队列过程
思考题2:如何生成升序的全排列?
5.4.2 生成子集
思考题3:给定数据{1、2、3、4},如何在 计算机中编程,列举所有子集?
5.4.1 生成排列
排列问题指的是对于给定的多个元素求其 中各种可能的序列。为了简单起见,这里仅仅 考虑1到n之间的整数的排列问题。 下面介绍三种生成方法:
(1)插入法
假设n-1规模的数组A[0..n-2]已经解决,
考虑元素A[n-1],在这个有序数组中处于何处?
A[0] ≤…≤ A[j] < A[j+1] ≤…≤ A[i-1] | A[i] … A[n-1]
2015-1-5
7
5.1 插入排序-示例
待排序序列{89,45,68,90,29,34,17} 插入过程: {89} 不需比较 {45,89} {45,68,89} {45,68, 89,90} {29,45,68, 89,90} {29,34,45,68 89, 90} {17,29,34,45,68, 89, 90} 插入次数=n-1=6 比较次数=?
拓扑排序问题: 对给定的无环有向图,要求按照某种顺序 列出它的顶点序列,使图的每一条边的起点 总在结束顶点之前。
2015-1-5
24
5.3 拓扑排序-DFS堆栈的方法
DFS入栈序列:
C1-C3-C4-C5-C2
C3
C1 C5 C4
DFS出栈序列:
C5-C4-C3-C1-C2
拓扑排序:
2015-1-5
dfs(v) { count = count + 1 mark v with count for each vertex w adjacent to v do
if w is marked with 0
dfs(w)
}
15
5.2.1 深度优先查找-堆栈过程
在深度优先遍历时需要 使用到什么辅助结构?
写出出栈和入栈的过程
j g a c d f b i e h
2015-1-5
16
5.2.1 深度优先查找-效率
深度优先搜索的效率与图的表示有关吗?
对邻接矩阵表示的图:遍历的效率为
Θ( V 2)
2015-1-5
17
5.2.1 深度优先查找-效率
对邻接链表表示的图:遍历的效率为 Θ( V + E )
2015-1-5
5
主要内容
减常量:
5.1 插入排序 5.2 深度优先查找与广度优先查找 5.3 拓扑排序 5.4 生成组合对象的算法
减常因子算法:5.5
减可变规模算法:5.6
2015-1-5
6
5.1 插入排序
如何用减一法对一个数组A[0..n-1]排序?
也就是如何建立n规模与n-1规模之间的关系?
Cbest (n) 1 n 1 (n)
i 1
2015-1-5 10
n 1
5.1 插入排序-效率分析
平均效率的精确分析基于对无序元素的研究,对于 随机序列的数组,
n Cavg (n) (n 2 ) 4
2
2015-1-5
11
5.1 插入排序-如何提高时间效率
如何提高插入排序的时间效率?
在广度优先遍历时需要 使用到什么辅助结构?
g a c d j f b i e h
写出进入队列的过程 a a-c-d-e a-c-d-e-f a-c-d-e-f-b a-c-d-e-f-b-g a-c-d-e-f-b-g-h-j
a-c-d-e-f-b-g-h-j-i
2015-1-5
第5章 减治法
思考题: f(n)=an,求解f(n),令乘法次数少于n次?
当n=8,求解f(8)= a8 f(8)= (a4)2
乘法次数:O(log n)
f(8)= ((a2)2)2
第5章 减治法
减治法的基本思想
将规模为n的问题递减为规模为n-1、n/c或n-k的子
问题,反复递减后对子问题分别求解,再建立子问题
2015-1-5 21
5.2.2 广度优先查找-效率
广度优先搜索的效率与图的表示有关吗? 对邻接矩阵表示的图:遍历的效率为 Θ( V 2) 对邻接链表表示的图:遍历的效率为 Θ( V + E )
2015-1-5
22
5.2 小结
DFS 数据结构 临时栈(stack) BFS 队列(queue)
的解与原问题的解的关系。
n-1:减常变量 n/c :减常因子 n-k :减可变规模
与分治法的区别于联系?
Divide-and-Conquer VS Decrease-and-Conquer
2015-1-5 2
减治法-减常变量
减常数(如1) :每此迭代规模减小n→n-1
2015-1-5
3
快速排序最优Θ(nlog2n) 最差Θ(n2) 平均Θ(1.38nlog2n)
选择排序 Θ(n2)
冒泡排序 Θ(n2)
2015-1-5 13
5.2.1 深度优先查找-基本思想
基本思想
访问一个节点A 若A有未访问相邻节点,
访问一个与A相邻节点B
以B为起点进行DFS
顶点顺序的种类
邻接链表的效率
两种顺序 (入/出栈次序)
Θ( V + E )
一种顺序
Θ( V + E ) Θ( V 2)
邻接矩阵的效率
Θ( V 2)
应用
判断是否有环 判断是否连通 求关节点
判断是否有环 判断是否连通 求最短路径
2015-1-5
23
5.3 拓扑排序
背景
大学课程里面的学习顺序 软件开发里面各个任务的先后顺序(Gantt 图)
20
5.2.2 广度优先查找-伪代码
bfs(v){ count = count + 1 { mark v with count count =0 initialize queue with v mark each vertex with 0 while queue is not empty do for each vertex v∈ V do a = front of queue for each vertex w adjacent to a do bfs(v) if w is marked with 0 } count = count + 1 mark w with count add w to the end of the queue remove a from the front of the queue} BFS(G)
C2
C2-C1-C3-C4-C5 ( DFS出栈序列的反序)
思考为什么这个算法是有效的?
2015-1-5 25
5.3 拓扑排序-减一法直接实现
N规模和n-1规模如何建立联系?
每次去掉一个源(没有输入边的顶点)
C4 C3 C1 C5 C2
2015-1-5
26
5.3 拓扑排序-减一法直接实现
N规模和n-1规模如何建立联系?
减治法-减常因子
减因子(如1/2):每此迭代规模减半n→ n/2
与分治法的区别?
2015-1-5
4
减治法-减可变规模
每此迭代减小的规模不同
举例,求解m和n的最大公约数
gcd(m,n)=gcd(n,m mod n) 当m=60,n=24,m和n的最大公约数? gcd(60,24)=gcd(24,12) gcd(24,12)=gcd(12,0)----60和24的最大公约数为12
2015-1-5 8
5.1 插入排序-伪代码
ALGORITHM InsertionSort( A[0..n-1] )
// 输入:大小为n的无序序列A // 输出:按非递减排列的序列A
for i ← 1 to n-1 do temp ← A[i] // A[i] :等待插入的元素 j ← i-1 // A[0] - A[j] 已排序 while j ≥ 0 and A[j] > temp do A[j+1] ← A[j] j ← j –1 // 从右往左移动有序元素,直到找到A[i] 插入位置 A[j+1] ←temp // 当A[j] < temp时跳出循环,因此插入到A[j+1]
(2)Johnson-Trotter 法