算法设计与分析课程Part1笔记(2)
来源:互联网 发布:网络管理专业 编辑:程序博客网 时间:2024/04/30 11:34
2. 主方法(Master Method)
2.1 主方法介绍
为了更好的计算递归式的时间复杂度,引入了主方法。
2.2 主方法的证明
三个参数可知,每次划分时,子问题的个数是原问题的a倍,而大小是原问题的1/b,2.3 简单例子
以Merge Sort为例,每次分为两个子问题,每个子问题是前一个问题size的一半,同时每个子问题解决时间长度不会超过n,则a=2,b=2,d=1。由主方法可知T(n)=O(nlogn).
利用Gauss递归整数算法,a=3,b=2, d=1.
有序二叉树的搜索,a=1,b=2,d=0.
2.4 快速排序(QuickSort)
快排是具有实践意义和稳定性能的算法(平均时间为O(nlogn)).
总体算法描述(Hoorecirca 1961):
QuickSort(array A, length n):
--if n==1 return
--p=ChoosePivot(A,n)
--Partition A around p(Partition(A,p))
--recursively sort 1st part
--recursively sort 2nd part
Partition(A,p)描述:(Partition就是要找打Pivot元素的位置,左小,右大)
--这里假设A的范围为L到R
--swap A[L] and A[P]
--i=L+1
--for j=L+1 to R
--if A[j]<p
--swap A[j] and A[i]
--i=i+1
--swap A[L] and A[i-1]
- 算法设计与分析课程Part1笔记(2)
- 算法设计与分析课程Part1笔记(1)
- 算法设计与分析课程Part1笔记(3)
- 算法设计与分析课程Part1笔记(4)
- 算法设计与分析课程Part1笔记(5)
- 算法设计与分析课程Part1笔记(6)
- 算法分析与设计课程作业第七周#1#2
- 《算法分析与设计》课程作业
- 算法分析与设计课程总结
- 算法设计与分析课程机试题
- 算法分析与设计课程总结
- 算法分析与设计课程总结
- 算法设计与分析课程总结
- 设计Huffman编码(算法设计与分析课程实验)
- part1 算法分析与程序设计基础
- 算法分析与设计课程(1):Add Two Numbers
- 算法分析与设计课程(3):【leetcode】Permutations
- 算法分析与设计课程(4):【leetcode】Wildcard Matching
- A*算法详解
- 20120726-分析解决“STM8L101单片机IO口模拟串口通讯发生的奇怪现象”
- windows过滤驱动程序设计入门(驱动程序基本结构,设备栈,IRP栈和工作原理)
- 位域应用——大小端模式对union体的影响的反思。
- The /proc File System
- 算法设计与分析课程Part1笔记(2)
- 《匆匆那年》-第三卷 过往
- Winform中显示Office文档(word,EXCEL,PPT)
- Dive Into Python 学习记录3-getattr 介绍/过滤列表/and or/lambda 函数
- 系统健壮性的思考
- 《匆匆那年》-第四卷 且行
- B/S和c/s结构模式有什么区别
- 软件开发程序员应具备的素质
- Objective-C与JavaScript的交互