算法
码上腾飞
这个作者很懒,什么都没留下…
展开
-
数据结构与算法 --- js描述栈
js描述栈及栈的使用栈的特性就是只能通过一端访问,这一段就是叫做栈顶。咖啡馆内的一摞盘子就是最形象的栈的例子;根据栈的特性,就可以定义栈的一些特殊属性和方法;用js的描述栈的时候底层数据结构用的是数组,通过this.top来跟踪最后一个元素的索引来实现栈的数据结构;function Stack(){ this.dataSource=[]; ...原创 2017-09-20 15:22:00 · 154 阅读 · 0 评论 -
数据结构与算法 --- js描述队列
js描述队列队列的特性是只能在队尾插入元素,在队首删除元素,先进先出;队列被用在很多地方,比如提交操作系统执行的一系列进程,打印任务池,模拟现实中的排队;//队列类function Queue (){ this.dataSource=[]; this.enqueue=enqueue; this.dequeue=dequeue;...原创 2017-09-22 11:44:00 · 154 阅读 · 0 评论 -
js---描述链表
js描述链表有些情况下js的数组结构在实际使用中速度很慢,此时可以考虑用链表来代替它;//链表类function Node(element){ this.element=element; this.next=null;}function LList(){ this.head=new Node('head'); this.f...原创 2017-09-23 09:48:00 · 121 阅读 · 0 评论 -
数据结构与算法 --- js描述集合
js描述集合function Set(){ this.datasource=[]; this.add=add; this.remove=remove; //this.size=size; //this.union=union; //this.intersect=intersect; //this.subse...原创 2017-09-23 16:33:00 · 95 阅读 · 0 评论 -
数据结构与算法 ---选择排序
var arr=[5,3,8,6,4,1,9];var minindex=0; //设置变量,记录算法的移动指针for(var i=0;i<arr.length-1;i++){ minindex=i; //默认为第一个 for(var j=i+1;j<arr.length;j++){ if(arr[j]<a...原创 2017-09-25 13:58:00 · 96 阅读 · 0 评论 -
数据结构与算法---冒泡排序实现
var arr=[5,3,8,6,4];console.log(arr)for(var i=0;i<arr.length-1;i++){ for(var j=arr.length-1;j>i;j--){ if(arr[j]<arr[j-1]){ var temp=arr[j-1]; ...原创 2017-09-25 13:58:00 · 84 阅读 · 0 评论 -
数据结构与算法 --- 插入排序
var arr=[5,3,8,6,4,1,9];for(var i=1;i<arr.length;i++){ var j=i; var target=arr[i]; //待插入 //比大小,后移 while (target<arr[j-1]){ arr[j]=arr[j-1]; ...原创 2017-09-25 14:00:00 · 107 阅读 · 0 评论 -
数据结构与算法 --- js二分算法
var arr = [-34, 1, 3, 4, 5, 8, 34, 45, 65, 87];//递归方式function binarySearch(data,dest,start,end ){ var end=end || data.length-1; var start=start || 0; m=Math.floor((e...原创 2017-10-09 17:52:00 · 122 阅读 · 0 评论 -
桶排序
桶排序 桶排序概述桶排序Bucket Sort从1956年就开始被使用,该算法的基本思想是由E. J. Issac R. C. Singleton提出来。桶排序是一种效率很高的排序算法,它的时间复杂度为O(N+M),(N个元素,范围为0--M),但桶排序有一定的限制,必须为非负整数,而且元素不宜过大设待排序序列的元素取值范围为0到m,则我...原创 2019-02-01 17:00:00 · 248 阅读 · 0 评论 -
散列算法和哈希表结构
散列算法和哈希表结构 散列算法和哈希表结构算法概述Hash ,一般翻译做“ 散列” ,也有直接音译为“ 哈希” 的,就是把任意长度的输入(又叫做预映射, pre-image ),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不 同的输入可能会散列成相同的输出,而不可能从...原创 2019-02-01 17:57:00 · 407 阅读 · 0 评论 -
paxos协议
paxos协议 转载:https://www.jianshu.com/p/60fc156401b7 posted @ 2019-02-17 19:25 节奏型男-全栈 阅读(...) 评论(...) 编辑 收藏 ...原创 2019-02-17 19:25:00 · 123 阅读 · 0 评论 -
ZAB协议
ZAB协议 ZAB协议概述ZAB协议是专门为zookeeper实现分布式协调功能而设计。zookeeper主要是根据ZAB协议是实现分布式系统数据一致性。zookeeper根据ZAB协议建立了主备模型完成zookeeper集群中数据的同步。这里所说的主备系统架构模型是指,在zookeeper集群中,只有一台leader负责处理外部客户端的事...原创 2019-02-17 18:30:00 · 163 阅读 · 0 评论 -
快速排序
快速排序 快速排序原理快速排序是冒泡排序的优化有没有既不浪费空间又可以快一点的排序算法呢?那就是“快速排序”啦!光听这个名字是不是就觉得很高端呢。快速排序快的原因因为相比冒泡排序,每次交换是跳跃式的。每次排序的时候设置一个基准点,将小于等于基准点的数全部放到基准点的左边,将大于等于基准点的数全部放到基准点的右边。这样在每次交换的时...原创 2019-02-16 17:21:00 · 106 阅读 · 0 评论 -
一致性哈希
一致性哈希概述在解决分布式系统中负载均衡的问题时候可以使用Hash算法让固定的一部分请求落到同一台服务器上,这样每台服务器固定处理一部分请求(并维护这些请求的信息),起到负载均衡的作用。但是普通的余数hash(hash(比如用户id)%服务器机器数)算法伸缩性很差,当新增或者下线服务器机器时候,用户id与服务器的映射关系会大量失效。当节点数量变化时,也就是 N 值变化,那么几乎所...原创 2019-02-14 15:35:00 · 106 阅读 · 0 评论 -
欧几里得距离
欧几里得距离概述根据两用户之间共同评价的Item为维度,建立一个多维的空间,那么通过用户对单一维度上的评价Score组成的坐标系X(s1,s2,s3……,si)即可定位该用户在这个多维度空间中的位置,那么任意两个位置之间的距离Distance(X,Y)(即:欧式距离)就能在一定程度上反应了两用户兴趣的相似程度。欧氏距离越小,两个用户相似度就越大,欧氏距离越大,两个用户相似度就越...原创 2019-10-24 14:36:00 · 3424 阅读 · 0 评论 -
BloomFilter
BloomFilter概述现在有一个非常庞大的数据,假设全是 int 类型。现在我给你一个数,你需要告诉我它是否存在其中(尽量高效)。我想大多数想到的都是用 HashMap 来存放数据,因为它的写入查询的效率都比较高。但是在内存有限的情况下我们不能使用这种方式,因为很容易导致内存溢出因为只是需要判断数据是否存在,也不是需要把数据查询出来,所以完全没有必要将真正的数据存放进去,B...原创 2020-04-13 14:35:00 · 152 阅读 · 0 评论 -
位数组
位数组计算机中的位操作: 与(&)、或(|) 、非(~) 1 & 1 = 1 1 | 1 = 1 ~1 = 0 1 & 0 = 0 1 | 0 = 1 ~0 = 1 0 & 1 = 0 0 | 1 = 1 0 & 0...原创 2020-04-13 14:43:00 · 649 阅读 · 0 评论 -
HyperLogLog
HyperLogLog探索HyperLogLog算法(含Java实现) - 简书原创 2020-04-13 15:08:00 · 129 阅读 · 0 评论