20220509
数据结构读书笔记
全书目录如下
1.编程原则
2.栈
3.队列
4.链栈&队列
5.回溯
6.列表和串
7.搜索
8.排序
9.表格与信息检索
10.二叉树
11.多叉树
12.图
13.波兰式

开坑!

第一章其实上学时候就看过,我很多的习惯都是因为这本书才养成的,但当时并没有记录- -,这次一并补上,看英文书的好处就是写的足够详细,什么时候读都能get到作者的意思,不好的地方就是太啰嗦了。但好在我是为了消磨时间才立的这个flag
编写一个large的程序往往有很多问题,这里的large可以理解为实现复杂或者规模庞大
问题1.精确的定义问题
拆分并逐渐分割成小问题,直到可以方便处理
问题2.程序设计
“先跑起来再慢慢优化”对小程序也许有用,但并不适合large的程序,大型程序的每个部分都需要良好的组织、清晰的实现、良好的可读性,否则它将难以复用或被他人阅读
问题3.选择合适的数据结构
同一个问题多种算法和数据结构都能解决,很难选择出一个最好的。在算法设计上一般来说选择的最好方法是看数据是如何存储的:
1.数据之间的关系是怎样的
2.那些数据保持在内存中
3.当需要的时候哪些数据已经被计算好了
4.哪些数据是存在文件里的?文件是如何被组织的
后面会先学列表、栈、队列,然后再学几个厉害的算法来对数据做处理,比如排序和搜索
问题4.算法分析
当有多种方法管理数据和设计算法的时候,就必须有一个标准来帮忙评判算法。
问题5.测试和验证程序的正确性
debug程序的难度会随着程序的规模而增加,可能是指数级
正确性:减少错误,让程序更加方便维护、方便我们验证算法是正确的、有方法可以测试我们的程序,让我们自信的说程序没有非预期行为

问题6.维护
当程序开始提供服务后,可能还会有新的需求

吹一波C++NB:
C++允许抽象数据、允许面向对象设计、允许自顶向下的设计方法、允许代码重用 。。。。。

casestudy  GameOfLife
cell不知道是翻译作细胞更好,还是叫单元格更好,反正前面都说grid的了,我就先当成细胞了
生存模拟,在一个无边界的矩阵中每个细胞都可以被有机物占用或不占用,被有机物占用的被称作“活着”,未被占用的称作“死的”
规则如下
1.给定1个细胞,它相邻的8个细胞都可以被接触,横竖斜都可以,称之为邻居
2.如果一个细胞活着,但同时邻居都没有存活,或仅剩1个存活,则在下一代将因孤独而死
3.如果一个细胞活着,但同时有4个或4个以上的邻居存活,则在下一代将因拥挤而死
4.如果一个存活的细胞有2个或3个邻居存活,则在下一代可以继续保持存活
5.如果一个细胞死了,但如果正好有3个活着的邻居,那么在下一代将被复活。所有死亡的其他细胞在下一代将保持死亡状态(这不是废话么hhh)
6.所有的生死均在一瞬间同时完成,所以正在死亡的细胞可以帮助其他细胞复活,但无法阻止其他细胞因拥挤导致的死亡。刚出生的细胞也无法复获或杀死上一代存活的细胞

一组特定排列的细胞叫做初始布局,上面的规则描述了一个布局如何在每代更替中变为下一个布局

多样性;有的布局会很快死干净、有的会从很小一点涨到巨大。。。难以人工预测
小目标:写一个程序模拟一个初始布局是如何一代代变化的
这个游戏被发明后不久,MARTIN GARDNER就在Scientific American的专栏里讨论过,被很多人所吸引

跳过面向对象基础部分,直接进入正题

本书的后续将严格区分method和function,中文翻译为方法和函数,方法是公开的,函数是私有的。(我写笔记会尽量遵守,但不保证hhhh

虽然书用的是C++,但并不影响我使用Java来表达相同的内容,代码将于我觉得可以的时机,公开在github和gitee上
耗时一个半小时,才读了8页hhhh,能读得完么= =  后面少记点笔记也许能读的快点
20220509结束

20220509数据结构绿书读书笔记相关推荐

  1. 《机器学习》(周志华)西瓜书读书笔记

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 第1章 绪论 第2章 模型评估与选择 第3章 线性模型 第4章 决策树 第5章 神经网络 第6章 神经网络 第7章 贝 ...

  2. 花书读书笔记(十一)-应用

    全部笔记的汇总贴:<深度学习>花书-读书笔记汇总贴 一.大规模深度学习 快速的 CPU 实现 GPU 实现:是为图形应用而开发的专用硬件组件. 大规模的分布式实现:数据并行.模型并行.异步 ...

  3. 《Java: The Complete Reference》等书读书笔记

    春节期间读了下<Java: The Complete Reference>发现这本书写的深入浅出,我想一个问题,书中很多内容我们也知道,但是为什么我们就写不出这样一本书,这么全面,这么系统 ...

  4. 红宝书读书笔记 第八章

    对象.类与面向对象编程 属性的类型 内部属性用两个中括号如[ [ Enumerable ] ] 开发者不能直接访问 数据属性 数据属性:数据属性包含一个保存数据值的位置.值会从这个位置读取,也会写入到 ...

  5. 思维导图操作书 读书笔记

    既然是思维导图的读书笔记,那笔记也就用思维导图来呈现.

  6. 现代操作系统-原理与实现(下)【银杏书-读书笔记】

    上篇链接戳这里 目录 第7章-进程间通信 多进程协助的目的 进程间通信IPC 数据传递 基于共享内存的消息传递 操作系统辅助的消息传递 控制流转移 单向和双向 同步和异步 超时机制 通信连接管理 直接 ...

  7. python编程入门书-读书笔记之《编程小白的第1本Python入门书》

    本书电子版下载地址:百度网盘 写在前面:你需要这本书的原因 有没有那一个瞬间,让你想要放弃学习编程? 在我决心开始学编程的时候,我为自己制定了一个每天编程1小时的计划,那时候工作很忙,我只能等到晚上9 ...

  8. 《产品思维》一书读书笔记

    作者简介  · · · · · · 刘飞,资深产品人,滴滴出行司机方向前产品负责人,点我达前产品专家,嘟嘟美甲联合创始人,锤子科技产品经理.在知乎累计446579次赞同,224900人关注," ...

  9. JS红宝书·读书笔记

    JavaScript高级程序设计 花了半个多月的时间,终于又把"JS红宝书"又撸了一遍. 第一次读"JS红宝书"还是2015年初学JS的时候,那时候只是把语法部 ...

最新文章

  1. 统计学习方法|感知机原理剖析及实现
  2. 机器学习(Machine Learning)- 吴恩达(Andrew Ng)-学习笔记
  3. 百万年薪程序员的7点能力
  4. 尚学堂java 参考答案 第七章
  5. DelphiXE下的字符串变化
  6. 【BZOJ 1095】 [ZJOI2007]Hide 捉迷藏 括号序列
  7. Hibernate 一对多连接表单向关联
  8. ssm返回oracle序列,SSM之JSON通用返回格式
  9. java 高级工程师面试题集锦,持续更新~
  10. 基于itext的pdf拼接
  11. 什么是火起来的“宅经济”,重庆阿尔克互联网技能帮扶学习,进入互联网
  12. unity应用(Apply)预制体时报错
  13. 怎么制作gif动图?你学会制作了吗?
  14. 从个人英雄到万能开发者,程序员3.0时代到来
  15. 2021年C证(安全员)考试题库及C证(安全员)多少钱
  16. java蜘蛛纸牌_Java课程设计——蜘蛛纸牌
  17. 小米耳机处于可配对模式_坚果上架Smartisan真无线耳机
  18. android app渗透测试-Activity、Service
  19. Neutron中的网络I/O虚拟化(by quqi99)
  20. 流氓软件新技术 8749病毒详细分析报告

热门文章

  1. 用python爬取智联招聘
  2. 面向初学者的高阶组件介绍
  3. matlab tstart,ttbox25102012 一款利用matlab编写的射线追踪程序,易改易用。 238万源代码下载- www.pudn.com...
  4. 修改ELF可执行文件entry入口感染一个程序
  5. Java写字幕滚动,使用JavaScript实现连续滚动字幕效果的方法
  6. java点赞功能的实现,类似微信点赞,用户仅能点赞一次,基于redis进行操作
  7. Qt QTcpSocket 客户端设计(自动重连、多线程处理、发送大数据包、同步方式)
  8. 【Windows网络连接问题】无法连接到这个网络
  9. 程序员,不要让自己做兔子(updated) 网上最近流传的一个笑话,关于兔子,狼还有一只老虎的,故事 我就是想打你了,还需要什么理由吗?谁让你是兔子 项目经理是这样当的...
  10. 中南林业科技大学第十一届程序设计大赛 D 最大的湖