自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 二叉树基础

基本概念父/子节点,根节点,叶节点(无子节点)高度(下->上),深度(上->下),层(深度+1)满二叉树:除叶节点外,每个节点都有左右子节点完全二叉树:叶节点在最底两层,最后一层的叶子节点都靠左排列,非最后一层的节点数达到最大非线性表数据结构存储方法链式存储法(常用)顺序存储法(适用于完全二叉树,堆)遍历深度优先遍历前序遍历(中左右)中序遍历(左中右...

2019-12-31 14:16:46 64

原创 js数据类型判断

兼容好toString/** * Object.prototype.toString.call,对象原型方法 * 1. 返回"[object type]",type为具体类型 * 2. 可以区分内置对象( Null,Array,Date...) */Object.prototype.toString === toString //true,全局方法Object.protot...

2019-12-30 18:34:34 66

原创 ES6之Proxy

概述修改默认行为,元编程功能:访问拦截改写,代理器语法let p = new Proxy(target, handler);target:被拦截目标handler:定制拦截行为/** * 常见参数 * target: 目标对象(函数) * property: 被设置的属性名 * value: 被设置的新值 * receiver: 最初被调用的对象(通常是proxy...

2019-12-30 15:09:16 82

原创 哈希算法

定义:将任意长度的值映射为固定长度的值(哈希值)要求哈希值不能反推原始数据输入敏感,原始数据修改少,哈希值变化大散列冲突概率低计算效率高,针对大文本常见应用安全加密,唯一标识,数据校验,散列函数,负载均衡,数据分片,分布式存储安全加密哈希算法MD5(Message-Digest Algorithm,信息摘要算法)SHA(Secure Hash Algorithm,...

2019-12-26 18:08:18 312

原创 js防双击功能

定时器防双击封装/** 定时器防双击* 参数:seconds - 多少毫秒后可以点击,默认500* 返回 - Boolean,是否已点击,true-是*///封装let isClick = falsefunction preventDoubleClick(seconds) { if (isClick) { return true } else { ...

2019-12-26 14:26:02 1491

原创 ES6之Reflect

1. 概述功能:操作对象目的:Object方法迁移优化某些Object返回结果让Object操作都变成函数行为Reflect与Proxy对象方法一一对应简化方法//函数调用合理化//Object.defineProperty定义相同属性时,会抛出一个错误var obj = {}Object.defineProperty(obj, 'name', { value: '...

2019-12-25 10:26:51 69

原创 散列表

散列表和链表联合使用LRU 缓存淘汰算法主要操作:增加,删除,查找时间复杂度:O(1)散列表 + 双向链表散列表:用于查找,复杂度O(1)散列表使用拉链(单链表)解决散列冲突双向链表:保存数据的顺序关系,便于删除、新增,复杂度O(1)。单链表时间复杂度o(n)添加分析是否存在如果存在,移到尾部如果不存在,且双向链表是否已满,删除头部节点,尾部添加如果不存在,且未满...

2019-12-23 16:14:59 225

原创 浏览器调试简单错误

优先级问题//优先级 . > }{a:1}.a//改进({a:1}).a小数点问题//3.为一整体3.toString()//改进(3).toString()

2019-12-20 17:55:39 125

原创 ES6之Set和Map

定义集合数据结构:Array,Object,Map,SetSet类似于数组,Map类似于对象Set成员唯一,Map键的范围不限于字符串// Set成员唯一,var set = new Set([1, 2, 3, 1, 2]) //Set { 1, 2, 3 }//Map键的范围不限于字符串var obj1 = {}var obj2 = {}var obj = { [obj...

2019-12-20 11:12:14 54

原创 Symbol简记

概述原始数据类型/** * 1. 原始数据,不可new(无构造函数) * 2. 数据类型:Number 、 String 、 Boolean 、 Object、 null 和 undefined */var a = Symbol()唯一值//表示唯一性console.log(Symbol() === Symbol())描述/** * 1. Symbol.pr...

2019-12-18 15:38:03 126

原创 数字滑动效果

原理数字从上到下布局只显示一个元素的视口使用过渡(transition),改变top值,滑动整个块简易版实现<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>number</title> <s...

2019-12-17 15:35:35 147

原创 css翻牌原理及实现

原理1. 两张图片层叠到一起,一张图片翻转0度,一张翻转180度(状态一)(定位布局)2. backface-visibility,设置图片翻转后隐藏3. perspective(父容器),增加3d透视4. 点击或悬浮事件,切换不同状态(状态二:两张图片皆翻转180度)5. transition,切换状态时,用过渡模拟翻牌效果实现(简易版,未做兼容,可用Chrome测试)<h...

2019-12-16 17:42:48 289

原创 二分查找(下)

二分查找的变形问题let arr = [1, 8, 8, 8, 8, 8, 8, 8, 11, 18]let index = bsearch(arr, 8)let indexEnd = bsearchEnd(arr, 8)let indexGreatOrEqual = bsearchGreatOrEqual(arr, 10)let indexLessOrEqual = bsearchL...

2019-12-14 20:57:31 80

原创 js对象复制

基础知识Javascript 中的对象只是对内存地址的引用复制指针(引用),对应同一内存浅复制扩展运算符(spread)Object.assign(…)适用于属性值都是原始类型的对象//浅复制var obj = { a: 1, b: 2 }var obj1 = { ...obj }var obj2 = Object.assign({}, obj)限制:引用类型的值...

2019-12-12 16:24:18 127

原创 二分查找(上)

有序数据集合的二分查找定义二分查找针对的是一个有序的数据集合。每次都通过跟区间的中间元素对比,将待查找的区间缩小为之前的一半,直到找到要查找的元素,或者区间被缩小为 0。时间复杂度分析:数据大小n,每次查找,缩小1/2最多查找k次。n/2k=1k=O(logn)应用场景二分查找依赖顺序表结构(下标访问)二分查找针对的是有序数据(不适用于排序变化的场景)数据...

2019-12-11 18:39:56 78

原创 js数组原型方法

js数组原型方法map返回新数组每个元素调用函数,返回新值var arr = [1, 4, 9].map(Math.sqrt)var arr = [1, 2, 3].map(x => x * 2)//react使用map生成元素//需配置依赖function functionComponent() { return ( <div> ...

2019-12-10 17:50:43 435

原创 线性排序(桶排序、计数排序、基数排序)

线性排序(桶排序、计数排序、基数排序)(js实现)1. 定义线性的时间复杂度非基于元素比较的排序算法数据要求苛刻2. 桶排序实现a. 将要排序的数据,分到有序的桶里(统计)b. 每个桶里的数据单独排序c. 合并时间复杂度分析a. 数据n个,桶m个,桶内平均数据k=n/mb. 单个桶,快速排序,O(k*logk)c. 所有桶,和,O(m*k*logk)->O(n...

2019-12-08 15:22:27 77

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除