Over the process of learning Algorithmn,I have realized a question that could you tell something about what the algorithmn is based on your understanding is usually asked by the interviewer in order to test the interviewee's depth of mastering algorithmn.As with the preparation for the coming interview,I make a summary now based on my understanding.
For the sake of strenthening my memory I write down these words. --Noted by me
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
1、程序 = 算法 + 数据结构 + 文档
算法操作的是数据,使得数据结构成为算法解题效率的关键因素。最重要的基本数据结构是“数组”和“链表”。它们可以用来表示一些更抽象的数据结构,比如“线性表”“栈”“队列”“图”“二叉树”以及“集合”。
我的话: 算法和数据结构两不分家,相互依存,如影如随。(ps:就像屌丝追女神那样,其实算法书里有个很优雅的说法:算法女神,呵呵~~程序猿无聊孤寂的时候翻翻一下算法书,可以说是在和算法女神交流。。。)
2、一个表示数据项的抽象对象集合和一系列对这些对象所做的操作合称“抽象数据类型(ADT)”
3、解决同一个问题的算法常常有好几种。
我的话:横看成岭侧成峰,解决问题的角度不同,解决方案也会不同滴。
4、一个好的算法往往是不懈努力和反复修正的结果。
我的话:任何技术的造就都是时间和精力的沉淀,日积月累,水到渠成。坚持写学习笔记博客就是在积累自己成长的过程。CSDN,I love you~~
5、算法设计技术(策略)是用算法解题的一般性方法,适用于解决不同计算领域的多种问题。
6、重要的问题类型包括:排序、查找、字符串处理、图问题、组合问题、几何问题和数值问题。
7、算法可以用自然语言或者伪代码表示,也可以用计算机程序的方式实现。
8、没有一种算法在任何情况下都是最优的,有些算法较简单,但速度相应较慢;另外一些速度较快,但更复杂;有些算法较适合随机排列的输入;而另一些则更适合基本有序的列表;有些算法较适合驻留在快速存储器中的列表;有些可以用来对存储在磁盘上的大型文件排序。
我的话:没有人是完美的,不要在欣赏别家院墙的玫瑰花而忘记了自己窗棂旁栀子花的馥郁芬芳,既要学会欣赏别人的华美,也要学会装扮自己。注意不是华而不实。ps:就像女孩子那样,学会装扮以体现出自己的气质。腹有诗书气自华。
9、如果一个排序算法保留了等值元素在输入中的相对顺序,它被称为是稳定的。
如果一个算法不需要额外的存储空间,把它称为是在位的。
10、算法是问题的程序化解决方案
11、科技殿堂里陈列着两颗熠熠生辉的宝石,一颗是微积分,另一颗是算法。
12、有两种算法效率:时间效率和空间效率。算法的时间效率主要用它输入规模的函数来度量,该函数计算算法基本操作的执行次数。通常基本操作是算法的最内层循环中最费时的操作。
13、分析非递归算法时间效率的主要工具是建立算法的基本操作执行次数的求和表达式,然后确定“和函数”的增长次数。分析递归算法时间效率的主要工具是建立算法的基本操作执行次数的递推关系式,然后确认它的增长次数。