![](https://img-blog.csdnimg.cn/2019092715111047.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法和数据结构
算法和数据结构
JAVA道人
我宁愿做错,也不愿什么都不做.
展开
-
KD树的基本概念
KD树是一种多维空间临近算法的存储结构.它会将多维空间划分为多个块.如果要进行搜索,它会在某一块或者某几块里进行查找搜索,而不是全部遍历,这样效率就能提高很多.下图是二维的情况:...原创 2019-06-28 13:07:02 · 129 阅读 · 0 评论 -
声音波峰和波谷
在HR做的第四个外包项目-----智能止鼾枕头。主要说明:由气垫组层的枕头直连设备,设备通过蓝牙协议连接手机APP,手机APP通过http请求连接服务器。 在用户睡觉时,设备通过录音,将数据传递给手机,手机再传递给服务器,服务器进 行解析是否是鼾声,然后将回调给手机,手机再发送指令给设备,设备来控制气垫高度达到止鼾的目的。难点说明:如何判断是鼾声。以及拿到鼾声的分贝和频率...原创 2018-07-22 16:37:33 · 2741 阅读 · 0 评论 -
B+树
B树如下:B树可以在精准查找的情况下,进行少量的磁盘IO,但是它依然有着缺陷,那就是无法进行范围查找。这种数据结构如果想进行范围查找必须递归节点。而B+树就可以解决上述这个问题。它有以下特点: 1.其定义基本与B-树同,除了: 2.非叶子结点的子树指针与关键字个数相同; 3.非叶子结点的子树指针P[i],指向关键字值属于[K[i...原创 2019-06-28 13:18:34 · 242 阅读 · 0 评论 -
二叉树
二叉树查找非常快。小的在左,大的在右。如下图:它的最好时间复杂度是Log(n),但是如果出现了极端的情况,比如说像右侧这样,那么就相当于线性遍历了。那么为了避免这种情况,平衡二叉树算法出现了。平衡二叉树会尽量保证左右两侧深度相同。它有多种实现方式,比如红黑树,AVL等。...原创 2019-06-28 13:18:50 · 174 阅读 · 0 评论 -
布隆过滤器BoolmFilter
BoolmFilter 是通过hash算法来判断是否在某个集合内的快速简化算法.它存的并不是元素本身,而是通过x个HASH算法把最终特征byte存储到y个byte数组里.当来查询的时候,直接进行HASH算法再匹配byte特征,如果全部命中,则认为是在该集合里.但这样意味着,如果本身是集合内的某个元素,肯定会全部命中,判断存在.如果不是,则会拥有误差.也有可能特征全部命中,判断存在.而这个误差是我们...原创 2018-04-05 00:41:33 · 458 阅读 · 0 评论 -
knn算法的基本概念
knn算法大概是最简单的分类算法了.如图所示:图中原有红蓝绿三种颜色的点,现在在X位置再放一个点,那这个点是什么颜色?这明显薛定谔的猫的问题是没有什么解答的.但我们可以说,这个点就是红色.因为X点最近的5个点有4个事红色,所以该点就被判定为红色这种算法需要注意两个问题:1.基础样本数量要足够大,这样分类分布才能趋向正确.2.K值要适当,就是取该点周围的K个点作为...原创 2019-06-28 13:07:09 · 252 阅读 · 0 评论 -
常见的时间复杂度:
O(1): 表示算法的运行时间为常量O(n): 表示该算法是线性算法O(㏒2n): 二分查找算法O(n2): 对数组进行排序的各种简单算法,例如直接插入排序的算法。O(n3): 做两个n阶矩阵的乘法运算O(2n): 求具有n个元素集合的所有子集的算法O(n!): 求具有N个元素的全排列的算法优<---------------------------<劣O...原创 2019-06-28 13:06:51 · 143 阅读 · 0 评论 -
B树
平衡二叉树也是一个不错的索引选择,但是平衡二叉树有很大的弊端,也就是树很深。在内存中,这不算什么毛病,但是如果是要读取磁盘的话,每次读节点都要来一次磁盘IO。怎么办?方法有两个:1.节点存储多个数据2.多分叉B树就将满足于上面两个要求,并且M阶的B树有以下特点: 1.定义任意非叶子结点最多只有M个儿子;且M>2; 2.根结点的儿子数为...原创 2019-06-28 13:18:42 · 188 阅读 · 0 评论