分类: 数据结构与算法
学习人工智能,你必须掌握的32个算法
奥地利符号计算研究所(Research Institute for Symbolic Computation,简称RISC)的Christoph Koutschan博士在自己的页面上发布了一篇文章,提到他做了一个调……
高级数据结构:线段树|及面向对象编程语言代码实现
编程实践中,我们经常会遇到一些在区间上进行查询,修改的需求。为了支持这些操作,引入了一种名为线段树的数据结构。线段树有以下特点:
线段树是一棵高度平……
2-3树特点、插入与查找操作图解
2-3树
2-3树,是最简单的B-树,其中2、3主要体现在每个非叶子节点都有2个或3个子节点,B-树即是平衡树,平衡树是为了解决不平衡树查询效率问题,常见的二叉平……
Dijkstra算法:最短路径的c语言代码实现与应用
在解决网络路由的问题中,寻找图中一个顶点到另一个顶点的最短路径或最小带权路径是非常重要的过程。
正式表述为,给定一个有向带权图G=(V,E),顶点s到V中顶点……
冒泡排序算法的要点及过程图解
冒泡排序
冒泡排序是一种很简单的排序算法,主要思想就是不断走访待排序序列,每次只比较两个相邻元素,如果这俩元素顺序不符合要求则对换它们,不断重复知道……
IBM研究人员提出“神经突变”进化算法 机器学习择速度提升50000倍
IBM的研究人员提出“神经突变”进化算法,可以为机器学习任务自动选择最合适的算法,选择速度提升了50000倍,错误率仅上升0.6%.
机器学习系统并非是“生而平等”的……
区块链共识算法:整体介绍及分叉的通俗讲解
简单过一下区块链
我们一般意识形态中的 链 是铁链,由铁铸成,一环扣一环。形象地,区块链的也可以这么理解,只不过它不是由铁铸成,而是由拥有一定数据结……
区块链共识算法:PoS 及其例子go语言代码实现
PoS 共识算法
PoS 全称为 Proof of Stake 股权证明。字面意思就是,股份制。就是说,谁的股份越多,谁的话事权越大,这和我们生活中的股份制公司中的股东的……
二叉搜索树特点、插入、查询与删除操作
二叉搜索树
二叉搜索树(Binary Search Tree,简写BST),又称为二叉排序树,属于树的一种,通过二叉树将数据组织起来,树的每个节点都包含了健值 key、数据值……
B+树的特点及插入、查找、遍历图解
B+树
B+树是B树的一种变体,也属于平衡多路查找树,大体结构与B树相同,包含根节点、内部节点和叶子节点。多用于数据库和操作系统的文件系统中,由于B+树内……
二叉查找树算法阐述及Go语言代码实例
Kaylyn 使用 Go 代码作为例子,直接了当的阐述了二叉查找树算法。
介绍
Kaylyn 在最近的一年里尝试通过实现各种算法来找乐子。可能这件事情对于你来说很奇……
B树的搜索过程VS插入删除操作
B树是一种自平衡多路搜索树,能够保持数据有序。它能够使搜索,插入和删除在O(log n)的时间复杂度内完成。我们描述一颗B树时需要指定它的阶数,阶数表示了一个结……
主流梯度下降优化算法介绍:达到 state-of-art?
梯度下降优化算法概述
平时我们说的训练神经网络就是最小化损失函数的过程,损失函数的值衡量了模型在给定数据集下的表现(拟合)能力。
图 1
损失函数 J 如……
分而治之原理图解、java实现快速排序案例
分而治之(divide and conquer, D&C),一种著名的 **递归式** 解决问题的方法.快速排序中便使用到了该方法;
D&C的工作原理:
- 找出简单的……
二分查找法算法基础、要点案例与图解
一、大O表示法:
指示算法的速度有多快,用于指出随数量的增大,算法的所需步骤增加的速度,常见的大O运行时间(时间复杂度):
O(1)表示常数阶时间复杂度
O(l……
广度优先搜索算法案例及java代码实现
广度优先搜索算法(Breadth First Search),又称为"宽度优先搜索"或"横向优先搜索",简称BFS; BFS是用于图的查找算法(要求能用图表示出问题的关联性)。
BFS……
狄克斯特拉算法案例、局限性及java代码实现
狄克斯特拉算法(Dijkstra )用于计算出不存在非负权重的情况下,起点到各个节点的最短距离
可用于解决2类问题:
从A出发是否存在到达B的路径;
从A出发到达B……
贪婪算法案例、np完全问题及java代码实现
贪婪算法(贪心算法)是指在对问题进行求解时,在每一步选择中都采取最好或者最优(即最有利)的选择,从而希望能够导致结果是最好或者最优的算法。
贪婪算法所得……
贝尔曼-福特算法案例局限及java代码实现
贝尔曼-福特算法(Bellman–Ford algorithm )用于计算出起点到各个节点的最短距离,支持存在负权重的情况
它的原理是对图进行最多V-1次松弛操作,得到所有可……
快速排序算法讲解及swift代码实现
快速排序算法被称之为20世纪十大算法之一,也是各大公司面试比较喜欢考察的算法。
快速排序算法讲解
快速排序的基本思想是:通过一趟排序将带排记录分割成独……
归并排序算法讲解及swift代码实现
归并排序
算法讲解
归并排序使用了算法思想里的分治思想(divide conquer)。顾名思义,就是将一个大问题,分成类似的小问题来逐个攻破。在归并排序的算法实……
插入排序算法讲解及swift代码实现
插入排序算法讲解
插入排序的基本思想是:从数组中拿出一个元素(通常就是第一个元素)以后,再从数组中按顺序拿出其他元素。如果拿出来的这个元素比这个元……
选择排序算法讲解及swift代码实现
选择排序算法讲解
选择排序也是两层循环:
外层循环的边界是[0,array.count-1),index为i。
内层循环的边界是[i+1,array.count),index为j。可以看到内层的……
冒泡排序算法讲解及swift代码现实
冒泡排序算法讲解
与上面讲的交换排序类似的是,冒泡排序也是用两层的循环来实现的;但与其不同的是:
循环的边界条件:冒泡排序的外层是[0,array.count-1)……