62. 伪代码与流程图
62 算法与数据结构 伪代码与流程图
越高级的程序员的抽象能力越强
流程图
如何用代码表示逻辑
输出N个数中最大的一个数
找到第1,2个数字中较大的那一个,存入max
找到max和第3个数字中较大的那个,存入max
找到max和第。。。个,存入max
max就是最大的数
三种语句搞定所有逻辑
所有的复杂算法都能用这三种语句描述(结构化编程理论)
顺序执行语句
条件判断语句
循环语句
推荐使用Mindjet画流程图, 也可以用XMind,百度脑图等工具代替
方形表示语句,菱形表示条件判断,圆方形表示结束
流程图,伪代码的好处
锻炼你的大脑
你必须自己画出来
不能运行在计算机里
整理你的思路
思路乱,则图乱
伪代码都写不好,则代码更写不好
流程图的应用
用流程图找到最大数(两个数,N个数)
总结
逻辑很重要
用三种语句表达逻辑
用图和伪代码表示三种语句
数据结构
就是数据与数据之间的关系和结构
如何表示两个数据
如果顺序有意义
[x,y]表示第一个是x,第二个是y
[y,x]表示第一个是y,第二个是x
比如坐标就是这样的数据
要提供first和last操作
如果顺序无意义
(x,y)和(y,x)一样
比如血压值(120,80)和(80,120)没区别
不需要提供first和last操作
如何表示N个数据
如果顺序有意义
数组表示[a1,a2,...aN]
要提供索引操作get(i)
要提供add/indexOf/delete操作
如果顺序没有意义
集合表示{a1,a2,...aN}
今天所有的代码都跟JS无关
要提供add/delete/has操作
如何表示N对N数据
比如学号
用哈希表表示
hash = {1001 =>'小方',1002=>'小红'}
数据结构 = 数据形式 + 操作(不同形式的数据暴露不同的操作)
数据结构的作用
提前记住一些结构
这些结构很常见,能让你很快理清思路,并且面试经常问
锻炼你的抽象能力
一种数据结构往往能解决很多类似的问题
如果你选错了数据结构,你根本就想不出思路
牛逼的程序员更重视数据结构,而不是算法
最后更新于
这有帮助吗?