快捷搜索: 脱发

数据结构和算法的笔记手写2

第二课

衡量算法的标准

关于如何衡量一个算法这一块
我个人感觉重在理解有个印象
不需要完全知道  为什么呢
第一 你没写过算法 你不知道怎么比较算法
	你用c语言写过排序么 可能没有吧
第二 算法的衡量需要根据环境去判断
	你一个写python和一个写javasript的比较代码
    可能代码不同 但是思路是相同 你不会python你说       那个算法好
所以说
	先保留一个衡量算法的意识
    以后写代码  知道有个衡量的标准
    知道基本的衡量方式就行了
    渐渐的形成自己的参考意识
 最后
 	在开发中 大都是一些应用软件 例如后台管理系统了
    你说要牛逼的算法吗  不一定
    第一你是团队开发  你的代码需要别人知道
    不然再牛逼的算法 鄙人不会  也会被舍弃
    第二开发周期问题  开发一个软件是有时间限制的不     是让你在哪想那个算法好 我选哪一个  开发中就是     简单就行 能跑就不动  除非真到了必须优化的时候     在设计好的算法

下面是一些算法评价的几个方向点

1. 时间复杂度

时间复杂度 可能很多人我会人为是程序执行的时间

执行的时间短 算法就是好的 其实不是的

时间复杂度说的是核心程序所执行的次数 关键是次数

2. 空间复杂度

空间复杂度 指的是你的算法在运行中所占站的最大的内存

3. 难易程度

难易程度 就是说你的算法的复杂度

可不可以快速的让人理解 知道这是解决什么问题的算法

比如开发中 你写了一个算法 只有你自己知道
其他人都不知道 你给别人讲 一般的人都不太懂
而另一个算法 可能没你的好 但是他很简单
一讲就听懂  那么算法等你辞职后一样会有人去维护
但是只有你知道的那就 没办法了 只能问你
但是长时间 不接触你的算法 你忘记的你说咋办

并非绝对都是这样的

比如 某些需求高性能的软件 可能需要高级算法

不需要太多人懂得 只要能保持到性能提升

4. 健壮性

可以理解为健康 或是容灾处理

不会因为某些简单的不合理的操作而崩溃

就像人的健康  不能因为一些小的变化
如气温升高了几度  就直接发烧39度把
算法也是如此 不能就因为用户一些误操作 直接崩溃吧

还有一些说算法要有准确性

准确性就是必须的 都不需要说的 你想想 你的算法都不正确还是算法么

让你解决杀猪的流程问题 你直接变成吃猪的问题

经验分享 程序员 微信小程序 职场和发展