算法分析之基本公理

(Algorithm Analysis -- the base axiom)
算法分析包括许多方面,最重要的是“determine the running time of a program as a function of its inputs”,即“时间复杂度”,它与输入有关。此外,算法分析的时候,还需要忽略硬件和操作系统的影响,为此,我们引入了“model”(模型)。按我的理解,所谓模式就是对时间的抽象,它不计算绝对时间,而是计算一些抽象意义的时间,比如Tfecth、Tstore、Tcall等。而模型是基于一些基本的公理,这些公理包括:
Axiom  The time required to fetch an operand from memory is a constant, tex2html_wrap_inline57411, and the time required to store a result in memory is a constant, tex2html_wrap_inline57413.
公理一:从内存中取操作数的时间是恒定的(Tfetch),将结果存储到内存中的时间也是恒定的(Tstore)。

Axiom  The times required to perform elementary arithmetic operations, such as addition, subtraction, multiplication, division, and comparison, are all constants. These times are denoted by tex2html_wrap_inline57423tex2html_wrap_inline57425tex2html_wrap_inline57427tex2html_wrap_inline57429, and tex2html_wrap_inline57431, respectively.
公理二:所有的基本算术运算的时间是恒定的,如加减乘除和比较。

Axiom  The time required to call a method is a constant, tex2html_wrap_inline57435, and the time required to return from a method is a constant, tex2html_wrap_inline57437.
公理三:函数调用和函数返回的时间是恒定的。
“ While the method call/return overhead may be rather large, nevertheless it entails a constant amount of work.”这句话是说,尽管函数调用和返回的开销相当大,但时它是一个固定量值的工作。

Axiom  The time required to pass an argument to a method is the same as the time required to store a value in memory, tex2html_wrap_inline57413.
公理四:函数调用过程中的参数传递(实参到形参),它的时间开销与“将值存到内存中是相同的”。

综上,这四个公理揭示了算法模型中的几项基本操作,这几项基本操作的时间值都是常量。除了这些时间值为常量的基本操作外,还有一类时间值随输入不同而不同的操作。比如数组元素的个数不同,在数组中进行匹配搜索的所消耗的时间也不同。

展开阅读全文

概率论的三个基本公理

05-06

<span style="color:#666666;font-size:14px;background-color:#FFFFFF;">这是一门简单易懂的概率论课程!</span><br />rn<br />rn<span style="color:#666666;font-size:14px;background-color:#FFFFFF;">看教材学概率论实在是看不懂,教材编写者一般会认为教材有老师来讲解,所以自学教材会备受打击。</span><br />rn<br />rn<span style="color:#666666;font-size:14px;background-color:#FFFFFF;">本课程最大特色就是&nbsp;简单易懂,&nbsp;“简单易懂”意味着我会用简单的语言,你容易听懂的语言教你概率知识,而不是让你越听越晕。</span><br />rn<br />rn<span style="color:#666666;font-size:14px;background-color:#FFFFFF;">没有概率论就没有统计学,也基本上就不存在机器学习了,从而人工智能也不会有今天这样的繁荣发展。如果要从事数据科学行业,不懂概率论或者对概率论一知半解,基本上都要回过头重新学习概率论,因为吃不透概率论就吃不透算法原理,也就只能永远半吊子,在数据科学行业半吊子那基本上就没有你的位置了。</span><br />rn<br />rn<span style="color:#666666;font-size:14px;background-color:#FFFFFF;">各位,还是沉下心来老老实实的把概率论认真的学好吧!别想着速成,速成只会浪费你更多的时间!当然了,找到一个好老师教你,的确可以让你比别人更快的学会学好,比如我的这门概率论教程!</span><br />rn<br />rn<p>rn <br />rn</p>

没有更多推荐了,返回首页