算法
酸乳酸乳
这个作者很懒,什么都没留下…
展开
-
大数据去重解决方案总结
1.MD5一个加密算法:我们把一条数据使用MD5进行加密优点:压缩性,生成一个固定长度的数值容易计算抗修改性强抗碰撞布隆过滤器bitmap使用2bit存储数据的状态 00 不存在 01 一次 11有重复hash分组比如大文件去重,内存放不下,可以先使用hash尽可能将数据分区,一样的数据分到一个区中,在去重。redis利用redis进行去重使用数据中唯一标识字符段,使用加密(MD5 SHA1)对字符段进行加密,生成一个字符串,放入到redis中,没有出现过就没有重复。参考链接原创 2021-09-04 21:02:38 · 907 阅读 · 0 评论 -
布隆过滤器(Bloom Filter)
布隆过滤器相当于hashset,但是不需要存储key的值,对于每个key,只需要使用k个比特位,每次存储一个标志位,用来判断key是否在集合中。使用一个很长的二进制向量和一系列的随机映射函数。算法流程使用k个hash函数,每个可以把key散列成一个整数初始化一个长度为n的二进制向量数组,初始化为0插入数据的时候将对应的二进制为设置为1优点 :不用存储key,节省空间,并且插入数据效率比较高,查询时间比较快**缺点:**会有误判的情况,如果bf说存在某一元素,但是这个元素可能不在集合中。原创 2021-09-04 09:06:44 · 71 阅读 · 0 评论 -
python 实现十大排序算法
冒泡排序这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。算法过程:进行N-1趟操作每一趟,都是不断的比较相邻的元素,那么一趟下来,就会将最大的移到排好顺序的最后面的位置。代码实现:def bubbleSort(array): ''' 冒泡排序 ''' for i in range(len(array)-1,-1,-1): ...原创 2019-10-15 17:42:39 · 5021 阅读 · 4 评论 -
KMP 字符串匹配
KMP讲解来源于http://www.ruanyifeng.com/blog/2013/05/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm.html问题:给定一个主串S和一个模式串p,要求找出p在S中出现的位置,即字符串匹配问题。解决方法: 对于字符串匹配,首先会想到暴力求解法,,但是这样效率会比较低。对于主串S和模式串P,在移...原创 2019-09-17 15:04:39 · 108 阅读 · 0 评论 -
链表反转
使用python实现单链表的反转leetcode206# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: def reverseLi...原创 2019-09-18 19:29:45 · 76 阅读 · 0 评论 -
leetcode上面的Tree合集
leetcode上面的Tree合集100.SameTree100.SameTree判断两棵树是否是一样的二叉树# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# ...原创 2019-09-21 16:17:17 · 119 阅读 · 0 评论