谈下程序设计算法的准备心得与体会-nCov隔离也许帮你提升能力
最近武汉的n-Cov使得大家只能在家办公了。
在家里的感受是什么样的呢?
1.上班的时候一直在奔跑,现在总算可以有集中的时间来思考一些之前一直没能好好整理的内容
2.时间变得自己可以掌控,优先级有自己掌控,暂时这一两个星期不需要为钱而奔波,感觉每天其实过得很充实
首先声明我不是什么算法高手,身边有很多算法高手太厉害了,我仅是一名考虑如何将孩子们能领入计算机正确之门的教育工作者。
最近因为要给一些孩子(5年级到初中)讲下基础算法,而且孩子肯定是需要深入浅出的,这样其实对老师是个很高的要求。
为了不给孩子带错路,不让孩子们觉得算法很难产生抵触情绪,本人最近在阅读大量的资料和上各个大学的公开课。通过大量阅读资料和视频学习,发现当老师真是一个教学相长的过程。
读大学那会儿学习都没这么认真过:)
1.目标与出发点
主要从以下几个方面:
1.如何用简单形象化的例子来讲述一个算法,最好是生活中的列子
2.找一些能用简单代码来体会算法的例子
3.如何归纳出,看到题目,大概能反应出题目考的是哪个算法
4.使用这些算法解题要注意的关键点
2.参考书籍
下面是参考的一些书籍,书籍真的是世界上最好的东西,作者一般都是在书中尽量倾其所有。但是书籍的作者一般会写作专注于某一个或多个方面,和一部分特定人群,所以需要博览群书来提取符合自己的内容。
下面是我参考的一些书籍,感觉角度和内容还是比较丰富。
书中有几段文字,还是挺有意思的,我也截图了一下:
-- “从本质上说,算法只是做事的方法,因此一个不怎么会写程序的数学家也可是算法领域的顶尖高手”
-- “以对一个无序数列进行从小到大排序的问题为例,小学生都能想出的‘插入排序’算法,大多数人打牌摸牌的同时,让手上的同色花牌保持有序,就是用的这种方法”
其实我们生活当中,不自然的在应用一些非常好的算法。
--“算法可以说是程序的灵魂。算法水平额高低很大程度上决定了程序员的层次。”
--“没有算法工地的程序员俗称为码农,大多只能从事技术含量低、机械的编程工作。一般IT培训机构不教算法,培养的就是此类人员。”
3.成果与感受
通过前期零散的总结和,这一周的集中攻克,终于折腾出了下面10多份,自己还比较满意的教案
下面这个网站给我帮助很大,分享你们
https://www.geeksforgeeks.org/
在线视频我觉得比较好的
算法研究学习的一些心得体会,也许很多人觉得浅显,不过自己感觉还是很有满足感的,所以写一下:
1.基础程序设计是for,while循环,加上判断语句
2.程序设计水平的提升,在于你能熟练使用递归,掌握了递归你能控制计算机程序就进入了另外一个阶段
3.大的问题,看起来很复杂,那么我们只能使用分而治之的手法,将大问题分解成为小问题,通过解决小问题来完成大问题的解
4.有些问题,穷举所有情况是NP完全问题,那么计算近似解又快又简单,比方贪心算法
5.计算机擅长的是什么?按照一个式子重复性的工作,那么如果一个问题我们能推导出一个递推式,并且能给出终止条件(也就是问题被分解到足够小,并能求解时的条件),剩下的就交给计算机来完成吧
6.程序的调用栈这个东西很有意思,先搁置一连串待解决的问题,等栈顶这个问题解决了,一连串问题,像多米诺骨牌一样,全部解决:)
7.当然请大概估算一下时间复杂度和空间复杂度,牺牲时间换空间?牺牲空间换时间?存储已计算过的值来避免重复计算
8.人类这个个题能生存这么久,那么其实天生就会使用很多优秀的算法,只是我们没有发觉而已
好了 好了,才疏学浅就暂时能总结这么多了,等水平有了更高提升,对程序有了更高的理解再来写吧~~ 希望对大家有益。
谈下程序设计算法的准备心得与体会-nCov隔离也许帮你提升能力的更多相关文章
- 浅谈Base64编码算法
一.什么是编码解码 编码:利用特定的算法,对原始内容进行处理,生成运算后的内容,形成另一种数据的表现形式,可以根据算法,再还原回来,这种操作称之为编码. 解码:利用编码使用的算法的逆运算,对经过编码的 ...
- 从决策树学习谈到贝叶斯分类算法、EM、HMM --别人的,拷来看看
从决策树学习谈到贝叶斯分类算法.EM.HMM 引言 最近在面试中,除了基础 & 算法 & 项目之外,经常被问到或被要求介绍和描述下自己所知道的几种分类或聚类算法(当然,这完全 ...
- 从决策树学习谈到贝叶斯分类算法、EM、HMM
从决策树学习谈到贝叶斯分类算法.EM.HMM (Machine Learning & Recommend Search交流新群:172114338) 引言 log ...
- 浅谈URLEncoder编码算法
一.为什么要用URLEncoder 客户端在进行网页请求的时候,网址中可能会包含非ASCII码形式的内容,比如中文. 而直接把中文放到网址中请求是不允许的,所以需要用URLEncoder编码地址, 将 ...
- 浅谈Hex编码算法
一.什么是Hex 将每一个字节表示的十六进制表示的内容,用字符串来显示. 二.作用 将不可见的,复杂的字节数组数据,转换为可显示的字符串数据 类似于Base64编码算法 区别:Base64将三个字节转 ...
- 浅谈关于特征选择算法与Relief的实现
一. 背景 1) 问题 在机器学习的实际应用中,特征数量可能较多,其中可能存在不相关的特征,特征之间也可能存在相关性,容易导致如下的后果: 1. 特征个数越多,分析特征.训练模型所需的时间就越 ...
- 在Eclipse下配置算法(第四版)运行环境
第一步:配置Eclipse运行环境 Eclipse运行环境配置过程是很简单的,用过Eclipse进行java开发或学习的同学应该都很熟悉这个过程了. 配置过程: (1)系统环境:Windows7 64 ...
- 谈下slot-scope
Vue里有个slot插槽的概念,常用的一般是命名的slot和默认的slot, 这里谈下slot-scope,Vue2.6后改成v-slot slot-scope场景是父组件用子组件的数据,但是样式自己 ...
- <2048>调查报告心得与体会
老师这次给我们布置了一个任务,就是让我们写一份属于自己的调查报告,针对这个任务,我们小组的六个人通过积极的讨论,提出了一些关于我们产品的问题,当然这些问题并不是很全面,因为我们是从自己的角度出发,无法 ...
随机推荐
- 【题解】毒蛇越狱(FWT+容斥)
[题解]毒蛇越狱(FWT+容斥) 问了一下大家咋做也没听懂,按兵不动没去看题解,虽然已经晓得复杂度了....最后感觉也不难 用FWT_OR和FWT_AND做一半分别求出超集和和子集和,然后 枚举问号是 ...
- linux tomcat安装
一.下载tomcat包 下载tomcat包并上传至服务器中 解压文件: tar -zxvf apache-tomcat-8.5.47.tar.gz 为了后期程序的便于管理,我们还需要将Tomcat复制 ...
- list的基本方法
数据类型列表 列表的创建 使用[ ]创建列表,元素之间使用逗号隔开, list()创建列表 列表添加新的元素 list.append() 在list末尾增加一个元素 list.insert(n, &q ...
- [推荐]icheck-bootstrap(漂亮的ckeckbox/radiobox)
适用于Twitter Bootstrap框架的纯CSS样式的复选框/单选框按钮的插件. GitHub:https://github.com/bantikyan/icheck-bootstrap 如果你 ...
- 什么是 Google Play服务
Google Play服务用于更新Google应用和Google Play提供的其他应用. 此组件可提供多种核心功能,例如对您的Google服务进行身份验证.同步联系人信息.提供最新的用户隐私设置,以 ...
- less实现if else
less没有我们平常使用的if,else条件判断,而是用when来实现这种用法 1.比如我们要设置宽度 宽度可以百分比,也可以是像素,当是百分比时做对应处理,当是px时做另一种处理,这时候就需要用wh ...
- vue传值(父子传值,非父子传值)
vue组件传值,分为父子传值和非父子传值,父子传值又分为父传子和子传父. 组件之间的传值,实现了数据的联动,是从操作Dom到操作数据一个跳转性的突破,在学习vue双向绑定原理之后, 这种观念就应该继续 ...
- 基于bootstrap的下拉选择 ( combox ) 输入 ( input ) 功能
需求: 在编辑数据的时候,既可以让用户输入,也可以从下拉框中选择 思路: 参照下面的效果图,因为是表格里面的数据,所以下拉框触发按钮和输入框分别为1列,输入列可以设置是否输入(方法:<td co ...
- Docker学习(一)环境准备安装centos7
前言 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化.容器是完全使用沙箱机 ...
- 如何清理 Docker 占用的磁盘空间
Docker 很占用空间,每当我们运行容器.拉取镜像.部署应用.构建自己的镜像时,我们的磁盘空间会被大量占用. 如果你也被这个问题所困扰,咱们就一起看一下 Docker 是如何使用磁盘空间的,以及如何 ...