算法设计与分析课程Part1笔记(3)
来源:互联网 发布:航班动态查询软件 编辑:程序博客网 时间:2024/05/14 22:04
3. 线性时间下的选择问题和图基本
3.1 线性时间下的选择
问题描述:对于包含n个元素的数字A,找出其中的第i小(或者大)的元素(例如n为奇数时,i=(n+1)/2;n为偶数时,i=n/2)。
Random_Selection(array A, length n, oder i):
-- if n=1 return A[1]
--choose pivot p from A (choose randomly)
--partition A round P, let j= new index of p
--ifj==i return p
--if j>i return Random_Selction(1st part, j-1,i)
--if j<i return Random_Selection(2nd part, n-j, i-j)
3.2 算法分析
3.3 图的基本
图简单来说是有点和边构成,通常用G表示,G=(V, E),其中V是顶点集合,E是边集合。一般用n代表G的节点数目,m代表G的边数。
图的割集指的是:将图的顶点分为两个非空集合A和B,那么对于端点分别在A和B中即连接两个断点集合的边数为c,A和B可以称为图G的一个割集。
其中使得c最小的割集,为G的最小割(minimumcut)。一个包含n个节点的图G其割集有2n个。
图的两种基本表示:邻接矩阵和链接表,一个方便随机存取,一个节省空间,对于sparse的图(即图密度m/n比较小)来说,链接表虽然不利于随机存取,但是很节省空间。
3.4 最小割问题
Random_Construction_Algorithm(Karger, early 90s):
-- while there more than 2 vertices:
--pick a remaining edge (u,v) uniformly at random
--merge u and v into a single vertex
--remove self-loops
最后只剩下了两个顶点,两个顶点之间的边数c是一个割集的cross edges的数目,但是不一定是最小的。
- 算法设计与分析课程Part1笔记(3)
- 算法设计与分析课程Part1笔记(1)
- 算法设计与分析课程Part1笔记(2)
- 算法设计与分析课程Part1笔记(4)
- 算法设计与分析课程Part1笔记(5)
- 算法设计与分析课程Part1笔记(6)
- 算法分析与设计课程(3):【leetcode】Permutations
- 《算法分析与设计》课程作业
- 算法分析与设计课程总结
- 算法设计与分析课程机试题
- 算法分析与设计课程总结
- 算法分析与设计课程总结
- 算法设计与分析课程总结
- 设计Huffman编码(算法设计与分析课程实验)
- part1 算法分析与程序设计基础
- 算法分析与设计课程(1):Add Two Numbers
- 算法分析与设计课程(4):【leetcode】Wildcard Matching
- 算法分析与设计课程(8):【leetcode】Sudoku Solver
- 策略模式-商场促销-大话设计模式 .
- 香港天文台为奥运马术赛研制出精确暑热压力计
- 黑马程序员--.Net学习日记——WinForm
- java异常处理——throw与throws的区别
- Jquery上传插件 uploadify v3.1使用说明
- 算法设计与分析课程Part1笔记(3)
- 雨天好睡觉
- 从fread和mmap谈C++读文件的性能
- jquery调用webservices注意事项
- HTML5中快速运用Google Maps JavaScript API V3
- 简单模拟Comparator-策略设计模式-马士兵设计模式教程
- js中 如何声明隐式全局作用域变量
- ORACLE常见数据类型详解
- 黑马程序员--.Net学习日记——C#编程基础