概率分析与随机算法小结
2017-05-18 07:54
363 查看
起因:对于一段特定的程序,我们想要准确分析它的运行时间,不得不考虑到各种情况的输入。
方法:现在有两种方法用来处理该问题,一种是概率分析,另一种是随机算法;
(1)概率分析着重于对函数(或者某个程序段)的输入的分布进行分析,由此计算程序的平均情况运行时间;
(2)随机算法本质上与概率分析刻画的内容是同一类型,但是随机算法转换了思路,将不再考虑输入的分布,而将输入的随机性用程序内部的一个随机发生器来体现,一般情况下体现在在函数内部随机的生成一个输入,这样在每次程序运行时,输入都会不一样,以此来体现随机性,此时计算的运行时间我们称为期望运行时间。
随机算法中的随机化方法:在书中第70到71页指出了两种方法;
(1)依据优先级进行排序:
PERMUTE-BY-SORTING(A)
1 n = A.length
2 let P[1..n] be a new array
3 for i = 1 to n
4 P[i] = RANDOM(1, n^3) //为了让产生的优先级尽可能的唯一
5 sort A, using P as sort keys
该方法先个数组中的每个元素生成一个优先级,然后依据生成的优先级对数组进行排序。
(2)原址排列给定数组:
RANDOMIZE-IN-PLACE(A)
1 n = A.length
2 for i = 1 to n
3 swap A[i] with A[RANDOM(i, n)]该方法相当于拿n个不同的球(元素)来对n个位置(数组)进行放置,放置后不能拿回,每次取球都是随机的。
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
对于算法导论的学习,可能改变一些,因为它内容太丰富,所以以后将选取一些有代表性的,重要的内容进行较为深入的分析,这样少一点,精细一点可能更好。
加油!!!
方法:现在有两种方法用来处理该问题,一种是概率分析,另一种是随机算法;
(1)概率分析着重于对函数(或者某个程序段)的输入的分布进行分析,由此计算程序的平均情况运行时间;
(2)随机算法本质上与概率分析刻画的内容是同一类型,但是随机算法转换了思路,将不再考虑输入的分布,而将输入的随机性用程序内部的一个随机发生器来体现,一般情况下体现在在函数内部随机的生成一个输入,这样在每次程序运行时,输入都会不一样,以此来体现随机性,此时计算的运行时间我们称为期望运行时间。
随机算法中的随机化方法:在书中第70到71页指出了两种方法;
(1)依据优先级进行排序:
PERMUTE-BY-SORTING(A)
1 n = A.length
2 let P[1..n] be a new array
3 for i = 1 to n
4 P[i] = RANDOM(1, n^3) //为了让产生的优先级尽可能的唯一
5 sort A, using P as sort keys
该方法先个数组中的每个元素生成一个优先级,然后依据生成的优先级对数组进行排序。
(2)原址排列给定数组:
RANDOMIZE-IN-PLACE(A)
1 n = A.length
2 for i = 1 to n
3 swap A[i] with A[RANDOM(i, n)]该方法相当于拿n个不同的球(元素)来对n个位置(数组)进行放置,放置后不能拿回,每次取球都是随机的。
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
对于算法导论的学习,可能改变一些,因为它内容太丰富,所以以后将选取一些有代表性的,重要的内容进行较为深入的分析,这样少一点,精细一点可能更好。
加油!!!
相关文章推荐
- 算法导论学习笔记-第5章 概率分析和随机算法
- 概率分析与随机算法
- 第五章 概率分析和随机算法
- 算法导论之概率分析和随机算法文档
- 第5章:概率分析与随机算法
- 算法导论习题5--概率分析和随机算法
- 6.10 概率分析和随机算法
- 概率分析和随机算法
- 算法导论学习(一)——概率分析和随机算法【待续】
- 转载:第五章围绕概率分析,随机算法,概率与期望展开了一系列有趣的讨论,其中许多有趣概率习题。 -----------------------------------------------------------------------
- 算法导论第5章 概率分析和随机算法(5.1)
- 算法导论-概率分析和随机算法习题解
- 算法导论——第五章概率分析与随机算法笔记
- 算法导论——lec 05 概率分析和随机算法
- 算法导论第五章:概率分析和随机算法
- 第五章概率分析和随机算法之练习5.3-6
- 算法导论第5章5.4概率分析和随机算法
- 概率分析和随机算法(2)——算法导论(6)
- 《算法导论》第5章 概率分析和随机算法 个人笔记
- 算法导论第五章概率分析和随机算法