
算法导论
吴海旭
这个作者很懒,什么都没留下…
展开
-
指示器随机变量,算法导论5.2
指示器随机变量当A发生时为1,否则为0.指示器随机变量也是变量,也具有随机变量的性质,所以我们可以计算一个指示器随机变量的期望值。设一个指示器随机变量为X,则X = 0,1。有 E(X) = 1xP(X=1) + 0xP(X != 1) = P(X = 1) 。而P(X=1)是什么呢?它是X所对应的事件A的概率,即P(A)。因为我们“恰巧”把当A发生时它的指示器随机变量定义成1,所以才会有这个结果原创 2016-06-24 12:12:52 · 1347 阅读 · 0 评论 -
寻找第二小元素
把n个元素分成一对对,每一对进行一次比较得出一个较小值,这是第一轮筛选,以此类推,一共进行⌈\lceillgnn⌉\rceil 轮筛选,n-1次比较。第二小的元素一定在某一轮筛选中与最小的进行比较被PK掉了,但是不能确定是哪一轮,所以要所有与最小的进行比较的元素进行再一次挑选最小。与最小的进行比较的元素个数等于筛选轮数,也就是⌈\lceillgnn⌉\rceil ,那么又要进行⌈\lceillgnn原创 2016-07-28 21:19:55 · 841 阅读 · 1 评论 -
找出数组X和Y中所有2n个元素的中位数
算法导论第三版,9.3-8算法:如果两个数组长度为1,选出较小的那个一个否则,取出两个数组的中位数。取有较大中位数的数组的低区和较低中位数数组的高区,组合成新的长度为n的数组。找出新数组的中位数 思路: 既然用递归分治,一定有基本情况,基本情况就是数组长度为1. 观察会发现总的中位数介于两个数组的中位数之间。详细证明如下: 设总的中位数是MM,XX的中位数是MXM_X,YY的中位数是原创 2016-07-30 11:53:04 · 3400 阅读 · 0 评论 -
最坏情况为线性时间的选择算法之Python实现
算法导论第三版,9.3import randomimport mathdef insertion_sort(a): length = len(a) for j in range(1,length): key = a[j] i = j - 1 while i>=0 and a[i] > key: a[i+1]原创 2016-07-29 21:02:43 · 1308 阅读 · 1 评论