[首页]
[文章]
[教程]
首页
Web开发
Windows开发
编程语言
数据库技术
移动平台
系统服务
微信
设计
布布扣
其他
数据分析
首页
>
编程语言
> 详细
数据结构和算法
时间:
2015-10-10 12:01:03
阅读:
296
评论:
0
收藏:
0
[点我收藏+]
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)
编辑
数据结构和算法
原文:http://www.cnblogs.com/adebibi/p/4866099.html
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年09月23日 (328)
2021年09月24日 (313)
2021年09月17日 (191)
2021年09月15日 (369)
2021年09月16日 (411)
2021年09月13日 (439)
2021年09月11日 (398)
2021年09月12日 (393)
2021年09月10日 (160)
2021年09月08日 (222)
最新文章
更多>
2021/09/28 scripts
2022-05-27
vue自定义全局指令v-emoji限制input输入表情和特殊字符
2022-05-27
9.26学习总结
2022-05-27
vim操作
2022-05-27
深入理解计算机基础 第三章
2022-05-27
C++ string 作为形参与引用传递(转)
2022-05-27
python 加解密
2022-05-27
JavaScript-对象数组里根据id获取name,对象可能有children属性
2022-05-27
SQL语句——保持现有内容在后面增加内容
2022-05-27
virsh命令文档
2022-05-27
教程昨日排行
更多>
1.
list.reverse()
2.
Django Admin 管理工具
3.
AppML 案例模型
4.
HTML 标签列表(功能排序)
5.
HTML 颜色名
6.
HTML 语言代码
7.
jQuery 事件
8.
jEasyUI 创建分割按钮
9.
jEasyUI 创建复杂布局
10.
jEasyUI 创建简单窗口
友情链接
汇智网
PHP教程
插件网
关于我们
-
联系我们
-
留言反馈
- 联系我们:wmxa8@hotmail.com
© 2014
bubuko.com
版权所有
打开技术之扣,分享程序人生!