当前位置:首页 > 范文 > 写给大家看的算法书读后感锦集

写给大家看的算法书读后感锦集

格式:DOC 上传日期:2024-10-21 14:05:27
写给大家看的算法书读后感锦集
时间:2024-10-21 14:05:27   小编:

《写给大家看的算法书》是一本通俗易懂的算法入门读物,作者通过生动的比喻和实际案例,深入浅出地介绍了各种常见的算法思想和技巧。读完本书后,读者能够对算法有更清晰的认识,提升解决问题的能力和效率。这本书不仅适合初学者阅读,也对有一定基础的读者有所启发。

写给大家看的算法书读后感(一)

完全零基础读物,大量图,完全无代码,也没有中高级数据结构与算法。读完后对算法与数据结构有基本感性的认识,用了不到一个小时读完,怀念读书时为了理解这些概念头疼的日子。正继续读邹恒明教授的《数据结构》与《算法之道》,第三部份是《算法》,进而《算法导论》,不知有生之年还会不会再读难啃的TAOCP。

写给大家看的算法书读后感(二)

我在jd买的这本书,定价51.9,参加5月31日活动满400减300,实际本书花费13元。但即使这样,仍然一句话评价--不值、非常不值、完全无价值。原因如下:

第一、书本定位混乱。

应该是给初中生看的,没有代码,左页文字,右页配图。文字就是中学数学课本上讲算法的步骤描述,可是配图是什么鬼?不结合代码能解得动吗?如果能看代码,前面的文字描述也太低能,根本讲不明白个啥。

第二、译者没有态度。

94页第4段“假设元素个数为N的数组SCORE中保存了0~100范围的值”,下面脚注“此处原文用了日语分数对应的英文,译本改用纯英文SCORE代替。--译者注”。这节是求数组元素中最大值MAX,当然要设数组名,可95页配图你看是什么名?

写给大家看的算法书读后感(三)

1. 算法

算法:对特定问题(对信息进行排序、搜索目标信息)的解决步骤。必须具备准确性、可停止性。

结构化编程思想:顺序结构、选择结构、循环结构。

2. 变量和数组

数据就是描述各种信息的载体。所有的算法都是由数据和处理来组合描述的。

算法处理的不同数据类型。整数与浮点数用数字表达,字符用单引号,字符串用双引号。

常用数据类型:

整数:处理整数值(不包括小数的数值)的数据类型

浮点数:处理实数值(包括小数的数值)的数据类型

字符:处理一个字符的数据类型

字符串:处理字符串的数据类型

布尔值:处理“真”、“伪”的数据类型

若对数据进行操作,则需要一个容器。此容器就叫做变量。数据输入、输出、存储。变量让处理过程变得通用化

代入:把数据赋值给变量的过程,会把已有的数据清除掉。一个变量每次只能存放一份数据。

变量名:标记区分不同的变量。特异性;不得以纯数字或者以数字开头的变量名;能够提示变量装载的数据。

赋值:= 将右边数据/变量存入左边变量,表示代入处理的语句。

变量也有数据类型,表明这个变量可以保存什么样的数据:整数型、浮点型、字符型、字符串型、布尔类型。

数组:保存大量数据。顺序排列的几个变量就构成数组,且所有数据都必须是同类型的。数组元素:变量;数组长度:变量个数;数组索引:0~N-1。利用数组进行关联数据的管理。

数组名:不能有异义;不能是纯数字或者以数字开头。

二维数组、多维数组:二维数组用行、列两个标号来指定数组元素。

字符和字符串的关系:字符串就是字符的连续拼合(数组)。计算机处理的数据是由0和1构成的二进制表示。字符在计算机中用数字(字符编码)表示。

获取字符串长度的两个方法:用一个专门的整数型变量来保存这个字符串长度;在字符串末尾的后一个位置上放置一个空字符“0”。

3. 数据结构

数据结构:大量数据的存储和处理方法。高效地管理大量数据的构造。

常用数据结构

数组:同类型数据紧密排列。一维数组、二维数组、多维数组;

链表:按顺序或者逆序管理前后关联的数据;

堆栈:管理像堆积在桌子上的书本一样的数据。取数据和存数据的顺序相反(先进后出);

队列(等待队列):按排队的先后顺序处理数据;

树:像树木结构一样管理数据的数据结构。

堆栈:把数据用堆叠的方式来管理的数据结构。最后写入的数据最先被读取(LIFO:Last in, First out)。考虑计算优先级时使用。

队列:从最先的数据开始按顺序处理数据。先输入的数据先输出(FIFO)。

链表:管理顺序排列的数据。将数据用绳子串起来,无论数据在哪儿均可以按顺序找到数据,用这种与数据存储位置无关的方法来管理数据之间的顺序。

链表与一位数组间的区别:一位数组没有间隙紧密排列;链表数据位置上不一样相互紧靠。数组用一个单独有效的变量存储有效数据个数,链表则在最后一个数据中标记“已经没有下一个数据了”来表示这是链表的末尾。

单向链表:用一根有方向的绳子把数据连接起来的链表。其中,每个元素都含有数据和指向下一项元素的指针(NEXT指针:下一个元素保存在哪里)。

双向链表:用向前和向后两根有方向的绳子来把数据连接起来的链表。每个元素含:数据、指向下一项元素的指针(NEXT指针)、指向上一项元素的指针(PREV指针)。HEAD指针:指向起始元素的指针;TAIL指针:指向末尾元素的指针。

数组的优势:快速访问第N个元素。

链表的优势:快速插入(断开绳子,连上新数据)、删除数据(去掉这份数据和前后的连接,再把前后数据直接连接起来就可以)。

环形缓冲区:让一维数组首位相连,得到“末尾元素后面还存在元素”的数据结构。

树:管理父节点数据和子节点数据。由根节点作为起始点,从根节点连出几条边,每条边和一个节点相连,延伸出来的这些节点又可以继续通过边延伸出新的节点。这个过程中,旧的节点称作父节点,延伸出来的新节点称为子节点。一个子节点都没有的节点为叶子节点。由根节点出发,达到某一个节点所要经过的边的个数叫作这个节点的深度。

二叉树结构:每一个节点的子节点最多两个。左子节点、右子节点。也可用二维数组表示,第i个父节点的左、右子节点分别为(i*2+1)、(i*2+2),表示父子节点存储的数据大小关系、二项式运算、搜索算法(检索数据用的算法)。

图这种数据结构关注的是两个以上的项目数据之间是如何关联在一起的,并通过图形一样的方式将这种关联表现出来。这些项目称作节点,表示节点关系之间的线称为边。边也有方向性(单向通行)。由节点和有方向的边组成的图叫作有向图,如果一个图的每条边都拥有权重(成本),那么这个图叫加权图。

4、5、6、7各种算法思想介绍

8. 算法和计算机

计算机数据是用二进制(每个数位上的值满2进1位)表示。Bit(最小单位):只能是0或者1。

和二进制相比,八进制和十六进制的数值位数大幅减少,并更加易读。

二进制转换为十进制:各位数权重2n乘以各位数再相加。

十进制转换为二进制:除以2取余数

二补码表示负数:某个值A的二补码是A用二进制表示时,所在位数的最大值(预先定义好保存数据的比特数(二进制的位数))加1再减去A。

或:两个命题中至少有一个为真命题时结果为真。OR

且:两个命题均为真是结果为真。AND

或非:当只有一个命题为真时结果为真。XOR

否定:反转给定命题的真伪。NOT

德摩根定律:简洁化,拔出力终止条件变成处理继续条件。

NOT (p OR q)=(NOT p) AND (NOT q)

NOT (p AND q)=(NOT p) OR (NOT q)

还剩页未读,是否继续阅读? 继续免费阅读

下载此文档

范文

Powered 2024 版权所有 ICP备666666号

付费下载
付费获得该文章下载权限
限时特价 2.00
原价:¥10.00
在线支付
付费复制
付费后即可复制文档
特价:2.00元 原价:10.00元
微信支付
x
提示:如无需复制,请不要长按屏幕影响阅读体验
付费下载
付费后即可下载文档
特价:2.00元 原价:10.00元
微信支付
x
付费下载
扫一扫微信支付
支付金额:2.00