伪代码与流程图 Note-19
2020/3/6 11:31:27
本文主要是介绍伪代码与流程图 Note-19,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
伪代码与流程图的相关知识,内容包括抽象概念,逻辑、数据结构。
一、抽象概念
编程其实语法并不难,难的是抽象概念,有时候我们每句都懂,但是加在一起不懂。
编程语言也能抽象,各类编程语言其实都没有很大区别,JS、Python、Java、PHP 其实很多概念是类似的,它们都有这些:
声明 if...else... 函数 对象 复制代码
这意味着没有必要过分关注语言的细节,应该首先理解这些语言的不变之处,然后以不变应万变。
二、逻辑
所有编程,都在使用逻辑
1. 逻辑是什么?
// 三段论逻辑(举例 1) 命题一:JS 有 7 种数据类型:stirng、number、bool、symbol、undefined、null、object 命题二:JS 的函数不属于前六种类型 推理:JS 的函数属于 object 类型 复制代码
// 三段论逻辑(举例 2) 命题一:JS 中所有函数都是由 Function 构造的 命题二:Function、Object、Array 是函数 推论:Function、Object、Array 是由 Function 构造的 复制代码
2. 逻辑 VS 直觉
直觉的好处: 直觉能让你快速学会一些东西,比如数字、字符串、数组、对象都可以靠直觉学会
直觉的坏处: 直觉却又能阻止你学会另一些东西,这时你就只能依靠逻辑说服自己,比如虽然不知道 Function 是如何构造 Function 的,但是逻辑告诉我们,确实如此
3. 用伪代码表示逻辑
例子 1 - 输出两个数中较大的一个数
// 如果第 1 个数大于第 2 个数,就输出第 1 个数 // 否则输出第 2 个数 a[12,32] if a.get(0) > a.get(1) print a.get(0) else print a.get(1) // 用 if...else... 可以表示逻辑 复制代码
例子 2 - 输出 N 个数中最大的一个数
// 输出 N 个数中最大的一个数 // 找到第 1、2 个数字中较大的那一个,存入 max // 找到 max 和 第 3 个数字中较大的那个,存入 max // 找到 max 和 第 ... 个,存入 max a [12,32,9,1,23,6] max = a[0] for i from 1 to a.length() - 1 if a.get(i) > max then max = a.get(i) print max // 用 for 循环可以表示逻辑 -- 又发现规律 复制代码
表示逻辑需要多少语句?掌握了这些语句就能表达所有逻辑
4. 三种语句搞定所有逻辑
这是「结构化编程」理论,但结构化编程在某些情况下会变得麻烦,比如错误处理,那个时候可能要第四种语句 goto
1. 顺序执行语句
语句 1 语句 2 复制代码2. 条件判断语句
if...then...else... if...else if...else 复制代码3. 循环语句
wihile...do... for i from 1 to n... 复制代码所有复杂的算法都能用这三种语句描述 -- 多么简洁
流程图、伪代码的好处是: 锻炼你的大脑,整理你的思路
三、数据结构
数据结构就是数据与数据之间的关系和结构
1. 举例子
如何表示两个数据
如果顺序有意义:[x,y] 表示第一个是 x,第二个是 y 比如坐标就是这样的数据,要提供 first 和 last 操作 ———————————————————————————————————— 如果顺序无意义:(x,y) 和 (y,x) 一样 比如血压值 (120,80) 和 (80,120) 没区别,不需要提供 first 和 last 操作 复制代码
如何表示 N 个数据
如果顺序有意义:数组表示 [a1,a2,...aN] 要提供索引操作 get(i),要提供 add / indexOf / delete 操作 —————————————————————————————— 如果顺序无意义:集合表示 {a1,a3,...aN} 要提供 add / delete / has 操作 复制代码
如何表示 N 对 N 数据(比如学号)
用「哈希表」表示 hash = {1001 => '小方',1002 =>'小红'} 复制代码
2. 数据结构的作用
数据结构 = 数据形式 + 操作
有没有觉得很抽象,不同形式的数据暴露出不同的操作,数据结构都是抽象的
提前记住一些结构: 这些结构很常见,能让你很快理清思路,面试经常问
锻炼你的抽象能力: 一种数据结构往往能解决很多类似的问题,如果你选错了数据结构,你根本就想不出思路,牛逼的程序员更注重数据结构,而不是算法
「资料来源:©饥人谷」
这篇关于伪代码与流程图 Note-19的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-01为什么公共事业机构会偏爱 TiDB :TiDB 数据库在某省妇幼健康管理系统的应用
- 2024-04-26敏捷开发:想要快速交付就必须舍弃产品质量?
- 2024-04-26静态代码分析的这些好处,我竟然都不知道?
- 2024-04-26你在测试金字塔的哪一层?(下)
- 2024-04-26快刀斩乱麻,DevOps让代码评审也自动起来
- 2024-04-262024年最好用的10款ER图神器!
- 2024-04-2203-为啥大模型LLM还没能完全替代你?
- 2024-04-2101-大语言模型发展
- 2024-04-17基于SpringWeb MultipartFile文件上传、下载功能
- 2024-04-14个人开发者,Spring Boot 项目如何部署