❶ 计算机科学中有哪些重要的算法
除去排序啊图啊这些具体算法,解决一个问题的基本方法无非:
第一Greedy和分治
第二穷举、搜索+剪枝以及A star之类
接着基本方法就是Heuristic
最后的办法,optimization问题上Meta-heuristic,clustring问题的上SVM啊NN啊之类。
❷ 作为一个程序员,有哪些常用的算法
常用的算法有:递推法、贪心法、列举法、递归法、分治法和模拟法
原则:1. 扎实的基础。数据结构、离散数学、编译原理,这些是所有计算机科学的基础,如果不掌握他们,很难写出高水平的程序。据我的观察,学计算机专业的人比学其他专业的人更能写出高质量的软件。程序人人都会写,但当你发现写到一定程度很难再提高的时候,就应该想想是不是要回过头来学学这些最基本的理论。不要一开始就去学OOP,即使你再精通OOP,遇到一些基本算法的时候可能也会束手无策。
2. 丰富的想象力。不要拘泥于固定的思维方式,遇到问题的时候要多想几种解决问题的方案,试试别人从没想过的方法。丰富的想象力是建立在丰富的知识的基础上,除计算机以外,多涉猎其他的学科,比如天文、物理、数学等等。另外,多看科幻电影也是一个很好的途径。
3. 最简单的是最好的。这也许是所有科学都遵循的一条准则,如此复杂的质能互换原理在爱因斯坦眼里不过是一个简单得不能再简单的公式:E=mc2。简单的方法更容易被人理解,更容易实现,也更容易维护。遇到问题时要优先考虑最简单的方案,只有简单方案不能满足要求时再考虑复杂的方案。
4. 不钻牛角尖。当你遇到障碍的时候,不妨暂时远离电脑,看看窗外的风景,听听轻音乐,和朋友聊聊天。当我遇到难题的时候会去玩游戏,而且是那种极暴力的打斗类游戏,当负责游戏的那部分大脑细胞极度亢奋的时候,负责编程的那部分大脑细胞就得到了充分的休息。当重新开始工作的时候,我会发现那些难题现在竟然可以迎刃而解。
5. 对答案的渴求。人类自然科学的发展史就是一个渴求得到答案的过程,即使只能知道答案的一小部分也值得我们去付出。只要你坚定信念,一定要找到问题的答案,你才会付出精力去探索,即使最后没有得到答案,在过程中你也会学到很多东西。
6. 多与别人交流。三人行必有我师,也许在一次和别人不经意的谈话中,就可以迸出灵感的火花。多上上网,看看别人对同一问题的看法,会给你很大的启发。
7. 良好的编程风格。注意养成良好的习惯,代码的缩进编排,变量的命名规则要始终保持一致。大家都知道如何排除代码中错误,却往往忽视了对注释的排错。注释是程序的一个重要组成部分,它可以使你的代码更容易理解,而如果代码已经清楚地表达了你的思想,就不必再加注释了,如果注释和代码不一致,那就更加糟糕。
8. 韧性和毅力。这也许是"高手"和一般程序员最大的区别。A good programming is 99 weat and 1 ffee。高手们并不是天才,他们是在无数个日日夜夜中磨练出来的。成功能给我们带来无比的喜悦,但过程却是无比的枯燥乏味。你不妨做个测试,找个10000以内的素数表,把它们全都抄下来,然后再检查三遍,如果能够不间断地完成这一工作,你就可以满足这一条。
希望对你有帮助
❸ 计算机十大经典算法有哪些
再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,逆着这个行进方向,从终点向始点计算,在选定系统行进方向之后,常比线性规划法更为有效,由每个阶段都作出决策,从而使整个过程达到最优化。所谓多阶段决策过程,特别是对于那些离散型问题。实际上,动态规划法就是分多阶段进行决策,其基本思路是,原问题的解即子问题的解的合并
不好意思啊,就是把研究问题分成若干个相互联系的阶段,逐次对每个阶段寻找某种决策,用来解决多阶段决策过程问题的一种最优化方法,就是把一个复杂的问题分成两个或更多的相同或相似的子问题:按时空特点将复杂问题划分为相互联系的若干个阶段。字面上的解释是“分而治之”动态规划法[dynamic
programming
method
(dp)]是系统分析中一种常用的方法。在水资源规划中,往往涉及到地表水库调度、水资源量的合理分配、优化调度等问题,而这些问题又可概化为多阶段决策过程问题。动态规划法是解决此类问题的有效方法。动态规划法是20世纪50年代由贝尔曼(r,使整个过程达到最优.
bellman)等人提出。许多实际问题利用动态规划法处理,故又称为逆序决策过程。
回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。
在计算机科学中,分治法是一种很重要的算法
❹ 计算机系统主要采用哪些加密算法
DES(Data Encryption Standard):数据加密标准,速度较快,适用于加密大量数据的场合; 3DES(Triple DES):是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高; RC2和 RC4:用变长密钥对大量数据进行加密,比 DES 快; IDEA(International Data Encryption Algorithm)国际数据加密算法:使用 128 位密钥提供非常强的安全性; RSA:由 RSA 公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的; DSA(Digital Signature Algorithm):数字签名算法,是一种标准的 DSS(数字签名标准); AES(Advanced Encryption Standard):高级加密标准,是下一代的加密算法标准,速度快,安全级别高,目前 AES 标准的一个实现是 Rijndael 算法; BLOWFISH,它使用变长的密钥,长度可达448位,运行速度很快; 其它算法,如ElGamal、Deffie-Hellman、新型椭圆曲线算法ECC等。 比如说,MD5,你在一些比较正式而严格的网站下的东西一般都会有MD5值给出,如安全焦点的软件工具,每个都有MD5。
❺ 计算机科学中有哪些经典的算法
计算机算法是以一步接一步的方式来详细描述计算机如何将输入转化为所要求的输出的过程,或者说,算法是对计算机上执行的计算过程的具体描述。
❻ 计算机算法有哪些
一个算法必须具备以下性质: (1)算法首先必须是正确的,即对于任意的一组输入,包括合理的输入与不合理的输入,总能得到预期的输出。如果一个算法只是对合理的输入才能得到预期的输出,而在异常情况下却无法预料输出的结果,那么它就不是正确的。 (2)算法必须是由一系列具体步骤组成的,并且每一步都能够被计算机所理解和执行,而不是抽象和模糊的概念。 (3)每个步骤都有确定的执行顺序,即上一步在哪里,下一步是什么,都必须明确,无二义性。 (4)无论算法有多么复杂,都必须在有限步之后结束并终止运行,即算法的步骤必须是有限的。在任何情况下,算法都不能陷入无限循环中。 一个问题的解决方案可以有多种表达方式,但只有满足以上4个条件的解才能称之为算法。
综上所述,我选A、B、E,个人感觉C也选,但我不确定,希望不要误导你。
最好根据上面的解释或是算法书自己看一下。
❼ 常用的计算机算法有哪些
穷举
回溯
动态规划
爬坡
分治
(排序有冒泡法,快速排序法,shell法,选择法等)
❽ 计算机常用算法有哪些
贪心算法,蚁群算法,遗传算法,进化算法,基于文化的遗传算法,禁忌算法,蒙特卡洛算法,混沌随机算法,序贯数论算法,粒子群算法,模拟退火算法。
模拟退火+遗传算法混合编程例子:
http://..com/question/43266691.html
自适应序贯数论算法例子:
http://..com/question/60173220.html
❾ 计算机编程的算法有哪些比较常用的用以解决问题的
一)基本算法 : 1.枚举 2.搜索: 深度优先搜索 广度优先搜索 启发式搜索 遗传算法 (二)数据结构的算法 (三)数论与代数算法 (四)计算几何的算法:求凸包 (五)图论 算法: 1.哈夫曼编码 2.树的遍历 3.最短路径 算法 4.最小生成树 算法 5.最小树形图 6.网络流 算法 7.匹配算法 (六)动态规划 (七)其他: 1.数值分析 2.加密算法 3.排序 算法 4.检索算法 5.随机化算法