
数据结构与算法
文章平均质量分 85
spigcoder
这个作者很懒,什么都没留下…
展开
-
二分算法及其公式
这是我最开始写的代码,最开始其实我不屑于看什么模板,感觉这些用if else 语句都可以解决,但多做了几道发现if else语句会让你的代码变得非常的臃肿,而且有一种面向测试用例编程的感觉,所以在在这里我想斗胆给各位好好讲一下二分查找算法。为什么不是left <= right,大家可以看下图,如果此时ret > target这是就会执行第二种语句,right=mid,那就会造成死循环。mid = left + (right-left)/2 这种情况是如果只有两个元素会找左边的那一个。原创 2024-07-31 08:54:53 · 570 阅读 · 0 评论 -
位图与布隆过滤器
布隆过滤器是一个位图结构,如:然后根据多个哈希函数对要存储的值进行计算,然后得到多个哈希值,再将对应位置的值置1eg: 如我想存储百度,就用三个哈希函数计算出3个哈希值,然后将其置1,再插入Tencent,在进行计算和置1这时在进行查询时就将要查询的值同样进行计算然后判断是不是所有的结果都为1,如果是那么就可能存在(因为可能你想存的值也是其他几个数据想存储的,这样就会导致误判),如果有一个不为1就一定不存在。原创 2024-07-28 19:01:16 · 1096 阅读 · 0 评论 -
使用开放定址法实现Hash
比较在我们之前学习的顺序结构和平衡树中,,因此当我们要查找一个元素时,要进行多次关键码的比较。顺序表的时间复杂度是O(N),搜索树为树的高度,平衡搜索树为O(log_2 N),它们搜索的效率取决与元素的比较次数。原创 2024-07-25 21:40:49 · 1351 阅读 · 0 评论