- 博客(42)
- 收藏
- 关注
原创 图的最小生成树
最小生成树是一副连通加权无向图中一棵权值最小的生成树。Prim算法:算法思想:将点分为已加入到最小生成树的和未加入最小生成树的。找到未加入的离集合最近的点,添加该点,修改其它点到集合的距离,知道所有的节点都加入最小生成树,时间复杂度O(V2),其时间复杂度和边无关算法实现的原理:1、以某个点为开始,寻找当前该点可以访问的所有的边2、在已经寻找的边中发现最小边,这个边必须有一个点还没有访问过,将还没有访问的点加入我们的集合,记录添加的边;3、寻找当前集合可以访问的所有边,重复2的过程,直到没有新
2020-05-13 10:15:08
336
原创 typescript依赖的安装
第一步:下载node,并安装,一路默认就可第二步:检查安装是否成功,win+R打开命令面板。1、npm -v npm的版本2、node -v node的版本第二步:安装依赖,1、在命令面板 npm install -g typescript2、如果没有连接外网,先执行先执行npm config set registry http://registry.npm.taobao.org...
2019-12-25 11:24:40
2632
原创 使用git和github
第一步:设置git设置自己的用户名和密码git config --global user.name’duzhuang’git config --global user.eamil ‘邮箱@qq.ocm’设置完成之后可以查看配置信息:git config -l第二步:使用git1、设置git文件夹 git init2、git add 文件名 把文件添加到缓存区3、git commit...
2019-12-20 16:35:40
233
原创 cocoscreator实现切换器
1、切换器的容器2、切换器的item /** * * @param {默认选中的} defaultNum * @param {回调函数,用来实现不同switcher点击实现的功能} cbFunc * @param {回调的上下文} context */ init(defaultNum, cbFunc, context) {...
2019-11-04 11:27:48
570
原创 js实现二叉树
二叉树和二叉查找树**二叉树 : **二叉树是一种特殊的树,它的子节点个数不超过两个。二叉树具有一些特殊的计算性质,使得在它们之上的一些操作异常高效。特点:两个子节点,左子节点和右子节点,根节点用来存储数据二叉查找树:是一种特殊的二叉树,相对小的值保存在左节点中,相对大的值保存在右节点中。这一特点使得查找的效率很高。二叉查找树的实现二叉查找树由节点组成,所以我们要定义的第一个对象就是...
2019-11-04 10:51:02
262
原创 js实现字典
字典字典是一种以键 - 值对形式存储数据的数据结构JavaScript 的 Object 类就是以字典的形式设计的。本章将使用 Object 类本身的特性,实现一个 Dictionary 类,让这种字典类型的对象使用起来更加简单。你也可以只使用数组和对象来实现本章展示的方法,但是定义一个 Dictionary 类更方便,也更有意思。实现Dictionay 类的基础是 Array 类,而...
2019-10-25 16:01:36
1596
原创 js实现链表
链表数组不总是组织数据的最佳数据结构,原因如下。在很多编程语言中,数组的长度是固定的,所以当数组已被数据填满时,再要加入新的元素就会非常困难。在数组中,添加和删除元素也很麻烦,因为需要将数组中的其他元素向前或向后平移,以反映数组刚刚进行了添加或删除操作。然而,JavaScript 的数组并不存在上述问题,因为使用 split() 方法不需要再访问数组中的其他元素了- 。JavaScri...
2019-10-25 15:08:01
121
原创 js实现队列
队列队列是一种列表,不同的是队列只能在队尾插入元素,在队首删除元素。可以将队列想象成在银行前排队的人群,排在最前面的人第一个办理业务,新来的人只能在后面排队,直到轮到他们为止。方法push :向队尾插入元素queue :在队首移除元素peek :查看队首的元素属性lenght : 队列的长度...
2019-10-24 16:52:36
182
原创 js实现栈
栈栈就是和列表类似的一种数据结构,它可用来解决计算机世界里的很多问题。栈是一种高效的数据结构,因为数据只能在栈顶添加或删除,所以这样的操作很快,而且容易实现。栈的使用遍布程序语言实现的方方面面,从表达式求值到处理函数调用。特点由于栈具有后入先出的特点,所以任何不在栈顶的元素都无法访问。为了得到栈底的元素,必须先拿掉上面的元素。方法对栈的两种主要操作是将一个元素压入栈和将一个元素弹出...
2019-10-23 18:46:08
98
原创 js实现列表
列表列表是一种最自然的数据组织方式。上一章已经介绍如何使用 List 类将数据组织成一个列表。如果数据存储的顺序不重要,也不必对数据进行查找,那么列表就是一种再好不过的数据结构。var List = function () { this.pos = 0; this.dateStore = []; this.listSize = 0;}List.prototyp...
2019-10-23 16:19:07
1241
原创 js的实现简单工厂模式
简单工厂模式你想要魔术师给你变礼物,你不需要知道他是怎么变的,只需要找到魔术师就可以对类的实例化实现简单工厂var bBall = function(){ this.info = '篮球'}var fBall = function(){ this.info = '足球'}var yBall = function(){ this.intfo = '羽毛球'}var ball...
2019-10-18 18:00:01
158
原创 js中getTime()返回的具体时间
new Date(new Date(‘2019/10/17’).getTime());使用这种格式的日期将转换为17号的00:00:00new Date(new Date(‘2016-04-12’).getTime());使用这种格式的日期将转换为17号的08:00:00...
2019-10-17 10:48:00
7474
原创 js实现类的封装、继承、多态
类每个类都包含三个部分:一:构造函数:供实例化对象用的二:构造函数外的通过点语法添加的:这是供类使用的,实例化对象是访问不到的三:类的原型中的:实例化对象可以通过其原型链进行间接的访问封装1、声明一个类:首先声明一个函数保存在一个变量里,然后在这个函数(类)内部通过this(函数内部自带的一个变量,用于指向当前这个对象)变量添加属性或方法来实现对类添加属性或者方法。new关键字可以...
2019-10-11 18:16:46
357
原创 js函数
js中使用prototype来实现方法的原因1、在js中实现方法function one(){ //方法内容}可以如此实现,只不过如此实现的方法,相当于创建了一个新的全局变量。等同于:var one = function(){ //方法内容}如何使自己的方法不声明为全局变量呢?我们需要将方法保存在对象中,只暴露出全局对象,隐藏对象的方法。var oneObj = { ...
2019-10-10 15:35:01
65
原创 cocoscreator触摸事件的传递
触摸事件冒泡触摸事件支持节点树的事件冒泡。在触摸事件冒泡的过程中不会有触摸检测,即使子节点不在父节点内,父节点也会收到事件的触发。触摸事件的冒泡过程与普通事件的冒泡过程并没有区别。所以,调用 event.stopPropagation() 可以主动停止冒泡过程。同级节点间的触摸点归属的问题假设上图中 B、C 为同级节点,C 节点部分覆盖在 B 节点之上。这时候如果 C 节点接收到触摸事件后...
2019-09-10 11:35:51
2477
原创 cocoscreator资源的加载
动态加载Assetcc.loader.loadRes:用来加载resource目录下的Asset(资源)和cc.loader.load不同的是,loadRes每次只能加载一个Asset。调用时只需传入相对resource的路径即可,并且路径结尾处不能包含文件扩展名...
2019-09-10 11:10:27
854
原创 cocoscreator加载和切换场景
加载和切换场景cc.director.loadScene(‘MyScene’)场景加载回调加载场景时,可以附加一个参数用来指定场景加载后的回调函数:cc.director.loadScene(“MyScene”, onSceneLaunched);上一行里 onSceneLaunched 就是声明在本脚本中的一个回调函数,在场景加载后可以用来进一步的进行初始化或数据传递的操作。由于回调...
2019-09-09 18:52:59
1586
原创 cc.calss类的实现
定义调拥cc.class,传入一个原型对象(已键值对的形式设定所需要的类型参数)var sprite = cc.Class({ name:'sprite'})使用cc.class创建了一个类型,设置类名为"sprite",类名用于序列化(一半可以省略)实例化sprite变量保存的是一个JavaScript构造函数,可以直接new出来一个对象var obj = new sprit...
2019-09-09 16:52:22
599
原创 cocos creator 中世界坐标和本地坐标的转换
本地坐标转换为世界坐标世界坐标 = 父节点.convertToWorldSpaceAR(子节点坐标);世界坐标转换为本地坐标本地坐标 = 转换点.convertToNodeSpaceAR(世界坐标)(转换点:即将要成为转换坐标的父节点的点)...
2019-09-02 14:31:47
4553
1
原创 js中的apply、call、bind的使用
apply、bind、call的作用apply、bind、call是Function对象自带的三个方法,都是为了改变函数体内部this的指向。区别apply()和call()会在调用函数之后立即调用,而bind()方法调用并改变函数运行时上下文后,返回一个新的函数,供我们需要时再调用.bind()和call()指定this的指向的参数后,可加入多个参数。而apply只接收一个数组。...
2019-09-02 14:23:18
95
原创 cocoscreator导入插件
如何安装插件第一步:确定插件中包含两个文件main.jspackage.json第二步:将插件存放到这样的一个目录:项目目录/packages/插件名字第三步:如果没问题,无法刷新出来,重启cocos手动安装插件cocos项目严格遵守以下的目录xx项目assetslibrarylocalsettingstemppackagesAA插件main.jpackag...
2019-08-09 11:39:17
4620
原创 滑动窗口
滑动窗口思想思路1、我们在字符串s中使用双指针的左右指针技巧,初始化left= right = 0;把这个索引闭区间[left,rigth]称为一【窗口】。2、我们先不断的增加right指针扩大窗口[left,right],直到窗口中的字符串符合要求(包含T中所有的字符)3、此时,停止增加right,转而不断增加left指针,缩小活动窗口[left,rigth],直到窗口中的字符不在符合要...
2019-08-02 18:02:57
76
原创 使用递归判断字符串是否是回文串
题目判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。解法1使用递归1、如果是负数,一定不是回文串2、如果是回文串,使用递归不会返回false,如果返回false,则不是回文串/**@param {number}X*@return {boolean}*/var isPalindrome = function(x){ if(x<0){...
2019-07-23 15:50:45
1882
原创 二分查找
二分查找1、取中位数:var mid = (left+right)/2在left和right都比较大的时候,可能会引起溢出的问题可更改为var mid = left+ (right-left)/2;或 :var mid = (left+right)>>>1当数组的个数是偶数时,中位数有左中位数和右中位数之分当元素的个数是偶数的时候:var mid = (left +...
2019-07-19 16:28:21
196
原创 javascript位运算符
位运算符工作于32位的数字上。任何数字操作都将转换为32位。结果会转换为javascript数字& :0101&0001 0001|:0101|0001 0101~:取反 ~0101 1010^:异或 0101 ^ 1010 1111符号 <<:左移 0101<<1 1010符号 >>:右移 ...
2019-07-19 15:27:58
124
原创 js中String对象的常用方法
常用方法chartAt():返回指定位置的字符串concat():连接字符串fromCharCode():从Unicode转换为字符串indexOf():返回指定字符在字符串中第一次出现的位置lastIndexOf():返回指定字符在字符串中最后一次出现的位置includes():检查字符串是否包含某个字符slice():提取字符串的片段,并在新的字符串中返回提取的字符串split...
2019-07-15 16:00:37
214
原创 递归思想
递归递归的条件1、符合递归的描述:需要解决的问题可以化为子问题求解,而子问题求解的方法与原问题相同,只是数量增大或减少。2、递归的调用次数是有限的3、必须有递归结束的时间递归的过程如何判断递归是否正确1、当n =0,1时结果正确;2、假设递归对于n是正确的,同时对于n+1也是正确的图解同时也是入栈和出栈的顺序图递归算法的编程模型在递去的过程中解决问题function ...
2019-07-15 14:51:53
134
原创 js中的位运算
简介数值或字符在内存内都是被存储为0和 1的序列,位运算就是操作这些0和1的位置和个数按位运算的运算符有6个:&按位与| 按位或^ 按位异或~ 取反‘>>’ 右移‘<<’ 左移&运算符&是二元运算符,它以特定的方式的方式组合操作数中对应的位 如果对应的位都为1,那么结果就是1, 如果任意一个位是0 则结果就是0|运算符|与||...
2019-06-17 11:24:25
91
原创 js中数组的常用的方法
数组中常用的方法**concat():**连接两个或更多的数组,返回结果**copyWithin():**从数组的指定位置拷贝元素到数组的另一个指定位置中。**every():**检查数值元素的每个元素是否都符合条件**filter():**检查数值元素,并返回所有符合条件元素的数组**froEach():**数组的每个元素都执行一遍回调**indexOf():**搜素数组中的元素,并...
2019-06-14 19:05:25
172
转载 算法简单易懂图解
点击下面的链接,可以快速进入哦 0-0图解快速排序图解快速排序图解归并排序图解归并排序图解选择排序图解选择排序图解直接插入排序直接插入排序...
2019-06-14 17:53:37
277
原创 js实现插入排序
插入排序算法简介工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。算法实现<1>.从第一个元素开始,该元素可以认为已经被排序;<2>.取出下一个元素,在已...
2019-06-14 16:44:47
1538
原创 js实现堆排序、归并排序、快速排序
排序的定义对某一序列对象根据某个关键字进行排序即高的在后面矮的在前面(矮的在后面高的在前面)稳定如果a原本在b的前面,而a= b,排序之后a仍然在b的前面不稳定如果a原本在b的前面,而a = ,排序之后a可能会出现在b的后面内排序所有操作都早内存中完成外排序由于数据太大,因此把数据放在磁盘中,而排序通过磁盘和内存的数据传输才能进行时间复杂度一个算法执行所消费的时间空间复杂...
2019-06-14 14:47:05
237
原创 js中typeof和instanceof的区别
typeoftypeof是一元运算符,放在一个运算数之前,运算数可以是任意类型。typeof的返回值是一个字符串,该字符串说明运算数的类型typeof的返回值:‘number’,‘string’,‘boolean’,‘object’,‘function’,'undefined’instanceofinstanceof用来测试一个对象在其原型链中是否存在一个构造函数的prototype的属...
2019-06-11 11:45:19
131
原创 js的深克隆和浅克隆
克隆的概念深克隆所有元素或属性完全复制,与原对象完全脱离,也就是说所有对新对象的修改都不会映射到原对象中浅克隆原始类型为值传递,对象类型仍为引用传递函数函数是对象类型,但函数是一等公民,函数克隆通过浅克隆即可实现。**原因:**函数克隆会在内存中单独开辟一块空间,互不影响。针对数组实现深复制用数组的方法concat一个空数组var a = [1,2,3];var b = []...
2019-06-10 19:07:48
2207
原创 cocos creator实现数据的筛选
原理1、参数:筛选的数据、回调函数、{isObj : 返回的数据类型,target : 回调函数的作用域}2、判断返回的数据类型3、对数据进行遍历判断实现/** * 筛选数据 * @param {[type]} data 数据 * @param {Function} func 条件方法(传入value参数,若返回'_break'则只返回筛选到的第一个数据) * @param ...
2019-06-10 17:13:48
519
原创 cocos creator实现each方法
原理1、参数:传入的数据、回调函数,执行回调的上下文2、判断数据是否存在3、判断数据是Arrary还是对象4、对数据进行遍历实现windows.each = function(obj,iterator,context){ if(!obj){ return; } if(obj instanceOf Array){ for(i = 0,i < lh = obj.leng...
2019-06-10 16:25:47
841
2
原创 节点的查找
对节点的查找全局节点查找cc.find()只传入第一个参数时,将从场景根节点开始逐级查找:cc.find(路径,参考节点)从参考节点开始逐级查找局部节点查找cc.getChildByName()查找当前节点的子节点...
2019-06-10 15:43:26
623
原创 cocos creator 资源的加载
资源的加载静态加载在属性检查器中设置的资源,就是静态加载的资源动态加载所谓的动态加载资源,指的是资源只能在场景中预先设置好,没办法动态切换。如果需要动态切换就需要用到资源的动态加载动态加载需要注意两点:1、所有通过脚本动态加载的资源,都必须放在resource文件夹或它的子文件夹下2、资源加载的时候都是异步的,需要在回调函数中获得载入的资源。这么做是因为creator除了场景关联的资...
2019-06-10 14:33:20
1025
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人