算法和数据结构
算法和数据结构
江醉鱼
神游全世界,苟活人世间
展开
-
红黑树
红黑树(Red Black Tree) 是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。 它可以在O(log n)时间内做查找,插入和删除,这里的n 是树中元素的数目。红黑树是每个节点都带有颜色属性的二叉查找树,颜色或红色或黑色。在二叉查找树强制一般要求以外,对于任何有效的红黑树我们增加了如下的额外要求:性质1. 节点是红色或黑色。性质2. 根节点是黑色...原创 2019-06-21 18:43:31 · 97 阅读 · 0 评论 -
日期在一年所有时间中的排序
var runNian=[0,31,29,31,30,31,30,31,31,30,31,30,31];var pingNian = [0,31,28,31,30,31,30,31,31,30,31,30,31];function sort(date){ var sortDate = 0; var dateArr = date.split('-'); var mont...原创 2020-05-07 11:35:08 · 491 阅读 · 0 评论 -
对称加密和非对称加密
对称加密: 加密和解密的秘钥使用的是同一个.非对称加密: 与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。对称加密算法: 密钥较短,破译困难,除了数据加密标准(DES),另一个对称密钥加密系统是国际数据加密算法(IDEA),它比DES的加密性好,且对计算机性能要求也没有那么高.优点:算法公开、计算量小、加密速度快、加密效率高...原创 2020-04-29 10:13:41 · 187 阅读 · 0 评论 -
js生成指定范围的随机数
Match对象的方法Math.ceil(n); //向上取整。返回大于等于n的最小整数。Math.floor(n); //向下取整。返回为n的整数部分。Math.round(n); //四舍五入。返回为n四舍五入后的整数。Math.random(n); //0.0 ~ 1.0 之间的一个伪随机数。【包含0,不包含1】 //比如0.8647578968666494Math.ceil...原创 2020-03-23 11:31:44 · 407 阅读 · 0 评论 -
js 统计字符串中字符出现的次数并排序
如题,先统计,在排序var ary = "asasDFGHadDfFFhjkMNJGBHGDsdfghjfghjkdfghjkl";var obj = {};var i = 0;var objArr = [];ary1 = ary.toLocaleLowerCase(); //将字符串转为小写for(i = 0; i < ary1.length; i++){ key ...原创 2020-04-27 16:32:59 · 1884 阅读 · 0 评论 -
js 字符串的全排序
实现全排序function fullpermutate(str) { var result = []; if (str.length > 1) { //遍历每一项 for (var m = 0; m < str.length; m++) { //拿到当前的元素 var left = str[m]; //除当前元素的其他元素组合 ...原创 2020-04-27 14:24:04 · 2834 阅读 · 0 评论 -
动态规划算法
动态规划的经典题目1.爬楼梯2.走方格原创 2020-04-26 18:20:14 · 124 阅读 · 0 评论 -
字符串和数组常用方法
数组一行代码去重:new Set(arr)数组反转:reverse查找:indexOf(返回下标)、includes(返回布尔值)字符串拆分:split拼接:join替换:replace查找:indexOf原创 2020-04-26 18:13:55 · 130 阅读 · 0 评论 -
简单玩转JS数组十大排序算法
先上一张耳熟能详的图n: 数据规模k:“桶”的个数In-place: 占用常数内存,不占用额外内存Out-place: 占用额外内存稳定性:排序后2个相等键值的顺序和排序之前它们的顺序相同1、冒泡排序前后两个数据对比,找出较大的值并交换位置,继续向后比较最后找出最大的值;内层循环一次,找出一个最大值,当找到倒数第二大的值得时候,循环结束。function bubbleSort(...原创 2019-08-27 00:48:25 · 1045 阅读 · 0 评论