JavaShuo
栏目
标签
数据结构和算法
时间 2019-11-12
标签
数据
结构
算法
繁體版
原文
原文链接
09 原则
摘要: ##单一职责原则* 职责被定义为:引发变化的缘由;* SRP原则体现为:一个对象(方法)只作一件事情;####经常使用模式:* 代理模式* 迭代器模式* 单例模式* 装饰者模式####分离职责* 若是随着需求的变化,有两个职责老是同时变化,那就没必要分离他们;* 职责的变化轴线仅当它们肯定会发生变化时才有...
阅读全文
posted @
2015-07-02 18:05
JinksPeng 阅读(4) |
评论 (0)
编辑
01基础
摘要: ##鸭子类型:* 只关注对象的行为,而不关注对象自己;##多态:* 简介: 同一操做用于不一样对象能够产生不一样的结果;* 背后的思想:将不变的事与可能变的事分开,封装;关键是消除类型之间的耦合;* 实现: * 通常语言:经常使用继承,向上转型来表现对象的多态特性; * JS:因为自己的的‘鸭子类型’特...
阅读全文
posted @
2015-07-02 18:03
JinksPeng 阅读(4) |
评论 (0)
编辑
08状态、适配器
摘要: ##状态模式* 状态模式的关键是把事物的每种状态都封装成单独的类,跟此种状态有关的行为都被封装在这个类内部;当内部状态改变时,会带来不一样的行为变化;####电灯开关的例子```var offLightState = function(light) { this.light = light;};of...
阅读全文
posted @
2015-06-17 09:53
JinksPeng 阅读(3) |
评论 (0)
编辑
07中介者、装饰者
摘要: ##中介者模式* 解除对象与对象之间的耦合关系;增长一个中介者后,全部的对象均可以经过中介者通讯而不是互相引用;####中介者模式例子* 游戏```function Player(name, teamColor) { this.state = 'live'; this.name = name; ...
阅读全文
posted @
2015-06-17 09:52
JinksPeng 阅读(7) |
评论 (0)
编辑
06享元、责任链
摘要: ##享元模式* 是一种用于性能优化的模式;核心是运用共享技术来有效支持大量细粒度的对象;####内部状态和外部状态* 享元模式要求对象的属性划分为内部状态和外部状态;* 目标是减小共享对象的数量; * 内部状态存储于对象内部; * 内部状态能够被一些对象共享; * 内部状态独立于具体的场景,通...
阅读全文
posted @
2015-06-17 09:51
JinksPeng 阅读(5) |
评论 (0)
编辑
05组合、模版
摘要: ##组合模式* 将对象组合成树形结构,以表示‘部分-总体’的层次结构;遍历树形结构的操做只须要一次操做;* 利用对象多态性的统一对待组合对象和单个对象,不用关心他们的不一样;* 像命令模式中宏命令就是一种组合模式;####请求在树中传递的过程;* 若是子节点是叶节点,叶对象自身会处理这个请求;若是仍是...
阅读全文
posted @
2015-06-17 09:50
JinksPeng 阅读(5) |
评论 (0)
编辑
04观察、命令
摘要: ##观察者模式* 又叫发布订阅模式,定义对象间一对多的依赖关系,当一个对象的状态发生改变时,全部依赖它的对象都获得通知;* JS开发中,通常用事件模型替代传统的发布-订阅模式####做用* 能够普遍应用于异步编程中,替代传统回调函数;如订阅`ajax`请求的`error、succ`事件;* 取代对象...
阅读全文
posted @
2015-06-17 09:48
JinksPeng 阅读(5) |
评论 (0)
编辑
03代理、迭代器
摘要: ##代理模式* 为一个对象提供一个代用品或占位符。以便控制对他的访问;#####面向对象设计原则-单一职责原则* 就一个类(对象,函数)而言,应该仅有一个引发他变化的缘由;(低耦合)####代理和本体借口的一致性* 当不须要代理的时候能够替换回本体####保护代理* 过滤请求;能够用于控制不一样权限对...
阅读全文
posted @
2015-06-17 09:47
JinksPeng 阅读(10) |
评论 (0)
编辑
02单例、策略
摘要: ##单例模式* 保证一个类只有一个实例,并提供一个访问他的全局访问点;####模拟单例实现* 传统方式:```var createDiv = (function(){ var instance; var createDiv = function(html){ if(instance) ...
阅读全文
posted @
2015-06-17 09:46
JinksPeng 阅读(9) |
评论 (0)
编辑
js:数据结构笔记14--高级算法
摘要: 动态规划:递归是从顶部开始将问题分解,经过解决全部分解出小问题来解决总体问题;动态规划从底部开始解决问题,将全部小问题解决,而后合并掉一个总体解决方案; function dynFib(n) { var val = []; for(var i = 1; i b) ? a : b;}functi...
阅读全文
posted @
2014-10-25 12:04
JinksPeng 阅读(10) |
评论 (0)
编辑
js:数据结构笔记13--检索算法
摘要: 顺序查找:也称线性查找,暴力查找的一种基本格式:var nums = [];for(var i = 0; i max min = arr[i]; } } return min;}View Code自组织数据:通过屡次查找以后,查找最频繁的元素会从原来...
阅读全文
posted @
2014-10-25 10:48
JinksPeng 阅读(17) |
评论 (0)
编辑
js:数据结构笔记12--排序算法(2)
摘要: 高级排序算法:(处理大数据:百万以上)希尔排序:是插入排序的优化版;首先设置间隔数组,而后按照每一个间隔,分别进行排序;如第一个间隔为5,首先a[5]与a[0]进行插入排序;而后a[6]和a[0],a[1]进行插入排序,直到最后一个;而后换下一个间隔值,直到全部间隔值排序完(当间隔值为1时,就是通常的...
阅读全文
posted @
2014-10-20 09:11
JinksPeng 阅读(10) |
评论 (0)
编辑
js:数据结构笔记11--排序算法(1)
摘要: 基本准备: function CArray(numElems) { this.dataStore = []; this.pos = 0; this.numElems = numElems; this.insert = insert; this.toString = toStr...
阅读全文
posted @
2014-10-19 17:23
JinksPeng 阅读(18) |
评论 (0)
编辑
js:数据结构笔记10--图和图算法
摘要: 图:是由边和定点的集合组成; 按照图的定点对是否有序能够分为:有向图和无向图;路径:全部顶点都由边链接构成;路径长度为第一个定点到最后一个顶点之间的数量;环:指向自身的顶点,长度为0;圈:至少有一条边的路径,且第一个顶点和最后一个顶点相同;强连通:若是两个顶点之间有路径,则这两个顶点就是强连通,反之...
阅读全文
posted @
2014-10-18 19:14
JinksPeng 阅读(29) |
评论 (1)
编辑
js:数据结构笔记9--二叉树
摘要: 树:以分层的方式存储数据;节点:根节点,子节点,父节点,叶子节点(没有任何子节点的节点);层:根节点开始0层;二叉树:每一个节点子节点不超过两个;查找快(比链表),添加,删除快(比数组);BST:二叉树查找:设置根节点为当前节点;若是要插入的节点小于当前节点,则设置其左节点为新的当前节点;大于的话选右...
阅读全文
posted @
2014-10-18 11:24
JinksPeng 阅读(26) |
评论 (2)
编辑
js:数据结构笔记8--集合
摘要: 集合:惟一性,无序性;基本结构: function Set () { this.dataStore = []; this.add = add; this.remove = remove; this.contains =contains; this.show = show; } ...
阅读全文
posted @
2014-10-17 20:45
JinksPeng 阅读(12) |
评论 (0)
编辑
js:数据结构笔记7--哈希表
摘要: 哈希表(散列表):经过哈希函数将键值映射为一个字典;哈希函数:依赖键值的数据类型来构建一个哈希函数;一个基本的哈希表:(按字符串计算键值)function HashTable() { this.table = new Array(137); this.simpleHash = simpleH...
阅读全文
posted @
2014-10-17 16:13
JinksPeng 阅读(26) |
评论 (0)
编辑
js:数据结构笔记6--字典
摘要: Dictionary类的基础是数组不是对象;字典的主要用途是经过键取值;基本定义:function Dictionary() { this.dataStore = new Array(); this.add = add; this.find = find; this.remove =...
阅读全文
posted @
2014-10-17 14:09
JinksPeng 阅读(27) |
评论 (0)
编辑
js:数据结构笔记5--链表
摘要: 数组:其余语言的数组缺陷:添加/删除数组麻烦;js数组的缺点:被实现为对象,效率低;若是要实现随机访问,数组仍是更好的选择;链表:结构图:基本代码:function Node (elem) { this.elem = elem; this.next = null;}function LLis...
阅读全文
posted @
2014-10-17 11:45
JinksPeng 阅读(17) |
评论 (0)
编辑
js:数据结构笔记4--队列
摘要: 队列是一种特殊的列表,数据结构为FIFO;定义:function Queue() { this.dataStore = []; this.enqueue = enqueue; this.dequeue = dequeue; this.front = front; this.bac...
阅读全文
posted @
2014-10-16 10:26
JinksPeng 阅读(15) |
评论 (0)
编辑
js:数据结构笔记3--栈
摘要: 栈是一种特殊的列表,数据结构为LIFO;定义:function Stack() { this.dataStore = []; this.top = 0; this.push = push; this.pop = pop; this.peek = peek; this.len...
阅读全文
posted @
2014-10-15 09:41
JinksPeng 阅读(16) |
评论 (0)
编辑
js:数据结构笔记2---列表
摘要: 列表:定义:一组有序的数据;function List() { this.listSize = 0; this.pos = 0; this.dataStore = []; this.find = find; .........................}方法:append:...
阅读全文
posted @
2014-10-13 09:31
JinksPeng 阅读(19) |
评论 (0)
编辑
js:数据结构笔记1---数组
摘要: JS中数组:只是一种特殊的对象,比其余语言中效率低;属性是用来表示偏移量的索引;在JS中,数字索引在内部被转化为字符串类型(这也是为何写对象属性的时候能够不叫引号),由于对象中的属性必须是字符串类型;操做:判断:isArray();复制:浅复制:var arr1 = arr2;深复制:functi...
阅读全文
posted @
2014-10-12 13:29
JinksPeng 阅读(19) |
评论 (0)
编辑
相关文章
1.
数据结构和算法
2.
算法和数据结构
3.
数据结构与算法 算法_数据结构和算法简介
4.
数据结构和算法(一)数据结构和算法概述
5.
数据结构和算法:什么是数据结构和算法
更多相关文章...
•
Rust 结构体
-
RUST 教程
•
XML 树结构
-
XML 教程
•
算法总结-回溯法
•
TiDB 在摩拜单车在线数据业务的应用和实践
相关标签/搜索
数据结构和算法
算法和数据结构
算法与数据结构
数据结构算法
数据结构与算法
数据结构
数据结构和算法05
学点数据结构和算法
Java数据结构和算法
常见算法和数据结构
XLink 和 XPointer 教程
Redis教程
MyBatis教程
算法
数据传输
数据库
0
分享到微博
分享到微信
分享到QQ
每日一句
每一个你不满意的现在,都有一个你没有努力的曾经。
最新文章
1.
python的安装和Hello,World编写
2.
重磅解读:K8s Cluster Autoscaler模块及对应华为云插件Deep Dive
3.
鸿蒙学习笔记2(永不断更)
4.
static关键字 和构造代码块
5.
JVM笔记
6.
无法启动 C/C++ 语言服务器。IntelliSense 功能将被禁用。错误: Missing binary at c:\Users\MSI-NB\.vscode\extensions\ms-vsc
7.
【Hive】Hive返回码状态含义
8.
Java树形结构递归(以时间换空间)和非递归(以空间换时间)
9.
数据预处理---缺失值
10.
都要2021年了,现代C++有什么值得我们学习的?
本站公众号
欢迎关注本站公众号,获取更多信息
相关文章
1.
数据结构和算法
2.
算法和数据结构
3.
数据结构与算法 算法_数据结构和算法简介
4.
数据结构和算法(一)数据结构和算法概述
5.
数据结构和算法:什么是数据结构和算法
>>更多相关文章<<