程序语言的奥妙:算法解读 ——读书笔记
算法(Algorithm) 是利用计算机解决问题的处理步骤。
算法是古老的智慧。如《孙子兵法》,是打胜仗的算法。
算法是古老智慧的结晶,是程序的范本。
学习算法才能编写出高质量的程序。
懂得了算法,游戏水平会更高。
比如下棋,如果懂得棋谱,就不需要每次考虑“寻找最好的一步棋”,按照棋谱
就可以走出最好的几步棋。棋谱是先人们智慧的结果,因此掌握多种棋谱的人更
容易在对弈中获得胜利。
算法的学习类似学习游戏攻略。
算法是编写好程序的“棋谱”。
算法必须满足“有效性”和“终止性”。
- 算法,必须要为给定的任务给出正确的结果,这就是算法的有效性。
- 算法,最终必须要确保停止。
断点是表示算法“有效性”的方法之一。
算法的种类:
1、技术计算
欧几里德相除法 (最大公约数)
高斯消元法 (联立方程组)
梯形法 (定积分)
迪杰斯特拉法 (最短路径)
埃拉托色尼筛法 (素数)
2、排序
将一行数据从小到大(升序),或从大到小(降序)排序的算法
简单选择法
简单交换法 (冒泡排序)
简单插入法
希尔排序
归并排序
快速排序
3、查找
从大量数据中定位目标数据的算法。
线性查找 (linear search)
二分查找 (binary search)
4、字符串模式匹配
从给定的字符串中寻找指定字符串位置(子字符串)的算法
简单字符串匹配
KMP法
BM法
算法的基础——结构化程序设计的思想
1、顺序结构
2、选择结构
3、循环结构
算法由上述三种结构的组合来进行的。
程序语言的奥妙:算法解读 ——读书笔记的更多相关文章
- 【2018.08.13 C与C++基础】C++语言的设计与演化读书笔记
先占坑 老实说看这本书的时候,有很多地方都很迷糊,但却说不清楚问题到底在哪里,只能和Effective C++联系起来,更深层次的东西就想不到了. 链接: https://blog.csdn.net/ ...
- 数据结构与算法JavaScript 读书笔记
由于自己在对数组操作这块比较薄弱,然后经高人指点,需要好好的攻读一下这本书籍,原本想这个书名就比较高深,这下不好玩了.不过看着看着突然觉得讲的东西都比较基础.不过很多东西,平时还是没有注意到,故写出读 ...
- <算法图解>读书笔记:第3章 递归
第3章 递归 3.1 递归 程序调用自身的编程技巧称为递归( recursion).递归做为一种算法在程序设计语言中广泛应用. 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一 ...
- 《改善python程序的91个建议》读书笔记
推荐 <改善Pthon程序的91个建议>是从基本原则.惯用方法.语法.库.设计模式.内部机制.开发工具和性能优化8个方面深入探讨编写高质量python代码的技巧.禁忌和最佳实践. 读书就如 ...
- 《Effective C#中文版:改善C#程序的50种方法》读书笔记
作者: suyan010203 来源: 博客园 发布时间: 2011-07-09 14:47 阅读: 8988 次 推荐: 4 原文链接 [收藏] 从去 ...
- pwn学习日记Day17 《程序员的自我修养》读书笔记
静态链接章小结 本章首先学习了静态链接的第一步骤,即目标文件在被链接成最终可执行文件时,输入目标文件中的各段是如何被合并到输出文件中的,链接器如何为它们分配在输出文件中的空间和地址.一旦输入段中的最终 ...
- pwn学习日记Day15 《程序员的自我修养》读书笔记
程序编译链接过程: 1.调用cc1程序,这个程序实际上就是GCC的C语言编译器,它将"hello.c"编译成一个临时的汇编文件"/tmp/ccUhtGSB.s" ...
- pwn学习日记Day14 《程序员的自我修养》读书笔记
目标文件:计算机科学中存放目标代码的计算机文件,包含着机器代码,代码在运行时使用的数据,调试信息等,是从源代码文件产生程序文件这一过程的中间产物. 目标代码(objectcode)指计算机科学中编译器 ...
- 《程序员的自我修养》读书笔记 - dllimport
Math.c { __declspec (dllexport) double Add (xx, xx) {...}} MathApp.c { __declspec(dllimport) doub ...
随机推荐
- framwork NHibernate
NHibernate 一.NHibernate 1.HQL curd语句总结 . 查询整个映射对象所有字段 ? //直接from查询出来的是一个映射对象,即:查询整个映射对象所有字段 String ...
- 每个PHP开发者都应该看的书
PHP这几年口碑很差.关于它的“糟糕设计的汇总”和语法上的矛盾有着大量的讨论,但是主要的抱怨通常是安全.很多PHP站点分分钟被黑掉,甚至一些有经验的.有见识的程序员会说,这门语言本身是不安全的. 我总 ...
- makefile中的自动化变量 【转】
转自:http://blog.chinaunix.net/uid-28458801-id-3495215.html 自动化变量 模式规则中,规则的目标和依赖文件名代表了一类文件名:规则的命令是对所有这 ...
- java实现给图片添加水印
package michael.io.image; import java.awt.AlphaComposite; import java.awt.Graphics2D; import java.aw ...
- DbProviderFactories.GetFactoryClasses
using System.Data.Common; private void Method1() { DataTable table = DbProviderFactories.GetFactoryC ...
- sdut2169Sequence(dp)
http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2169 感觉是有递归思想的 dp[j]表示从1到 ...
- Oracle数据库之四
删除记录的SQL语句 delete from 表名[where 条件];(DML) 注意: 如果没有where子句,代表全部删除(慎用). delete也必须commit后才能生效 truncate也 ...
- This project needs to migrate WTP metadata
in command-line: path> mvn eclipse:clean path> mvn -Dwtpversion=1.5 eclipse:eclipse path> m ...
- JQuery_给元素添加或删除类等以及CSS()方法
一.addClass() - 向被选元素添加一个或多个类 <script src="jquery-1.11.1.min.js"></script> < ...
- android SDK 更新
在SDK Manager下Tools->Options打开了SDK Manager的Settings,选中“Force https://… sources to be fetched using ...