分类: 数据结构与算法
thumbnail

链表的数据结构与算法图解(单项、双项)

数组是软件开发过程中非常重要的一种数据结构,但是数组至少有两个局限: 编译期需要确定元素大小 数组在内存中是连续的,插入或者删除需要移动数组中其他数……
thumbnail

链表数据结构与算法图解(跳跃链表、自组织链表)

解决普通链表查找的问题。首先分析问题的瓶颈,对于查找,自然是从头开始顺序查找到尾部,那么怎么才能更快查找到目标元素呢?将链表中的元素排序可以加速查……
thumbnail

二叉树三种遍历数据结构图解及代码实现

二叉树的遍历是指从根结点出发,按照某种次序依次访问二叉树中所有结点,使得每个结点被访问一次且仅被访问一次。 在二叉树的遍历中存在三种较为常用的遍历方……
thumbnail

Floyd多源最短路径算法图解

Floyd算法 Floyd是一种经典的多源最短路径算法,它通过动态规划的思想来寻找给定加权图中的多源点之间的最短路径,算法时间复杂度是O(n3)。之所以叫Floyd是……
thumbnail

Radix基数树的数据结构和算法图解

Radix树 Radix树,即基数树,也称压缩前缀树,是一种提供key-value存储查找的数据结构。与Trie不同的是,它对Trie树进行了空间优化,只有一个子节点的中间节……
thumbnail

Python 中的无监督学习算法

无监督学习是一种用于在数据中查找模式的机器学习技术。提供给无监督算法的数据是没有标记的,这意味着只给出输入变量(X)而没有相应的输出变量。在无监督……
thumbnail

统计到概率,入门者能用Python试验的机器学习基础

学习统计,就不可避免得先了解概率问题。概率涉及诸多公式和理论,容易让人迷失其中,但它在工作和日常生活中都具有重要作用。先前我们已经讨论过描述性统计……
thumbnail

python算法复习:实现二叉树深度&&广度优先遍历

什么是树 在计算器科学中,树(英语:tree)是一种抽象数据类型(ADT)或是实现这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。它是由n……
thumbnail

程序员须掌握的数据结构:快速排序python代码实现

快速排序,时间复杂度O(nlogn)。不需要额外空间14行,需要额外空间7行。 # 源码: https://github.com/SpikeKing/data_structure_with_python def quick_sor……
thumbnail

程序员须掌握的数据结构:归并排序python代码实现

归并排序,时间复杂度O(nlogn)。20行。 # 源码: https://github.com/SpikeKing/data_structure_with_python def merge_sort(alist): """ 归并排序……
thumbnail

程序员须掌握的数据结构:希尔排序python代码实现

希尔排序,时间复杂度,介于O(n)~O(n^2),也可以认为是O(n^3/2),插入排序的改进,比较和移位较少,每次遍历都会生成一个"更有序"的子列表。12行,增量部分5……
thumbnail

程序员须掌握的数据结构:插入排序python代码实现

插入排序,时间复杂度O(n^2),用移位代替交换,移位操作的时间大约是交换时间的1/3。插入排序7行。 # 源码: https://github.com/SpikeKing/data_structure_wi……
thumbnail

程序员须掌握的数据结构:选择排序python代码实现

选择排序,时间复杂度O(n^2),比较次数与冒泡排序相同,交换次数小于冒泡排序。 选择排序6行。 # 源码: https://github.com/SpikeKing/data_structure_with_p……
thumbnail

程序员须掌握的数据结构:冒泡排序python代码实现

冒泡排序,时间复杂度O(n^2),冒泡排序通常被认为是低效的排序方式。优势是:识别排序列表,和提前终止排序。短冒泡排序就是提前终止的冒泡排序。冒泡排序4行……
thumbnail

程序员须掌握的数据结构:二分查找python代码实现

二分查找,时间复杂度O(logn),排序一次,查找多次,排序成本可以忽略;只查找一次,则顺序查找比较好。非递归12行,递归10行。 # 源码: https://github.com/……
thumbnail

快速排序的要点、过程与算法图解

快速排序 快速排序由C.A.R.Hoare在1962年提出,是冒泡排序的一种改进。其基本思想为:通过一趟排序将待排序数据分割成独立的两部分,其中一部分的所有值都比……
thumbnail

什么是哈希(散列)表 一文读明白它

哈希表也称为散列表,是根据关键字值(key value)而直接进行访问的数据结构。也就是说,它通过把关键字值映射到一个位置来访问记录,以加快查找的速度。这个……
thumbnail

深入机器学习系列——异常检测(Anomaly Detection)

异常检测(Anomaly Detection), 它是机器学习的一个重要分支,实际应用领域广泛,更与我们的生活息息相关。那么什么是异常检测?其主要方法和目前所面……
thumbnail

AI工程师 NLP入门实战:完整的机器处理流程

无论是初入 AI 行业的新人,还是想转行成为 AI 领域的技术工程师,都可以在本篇文章中,收获入门 NLP 和实战的相关知识。 有机器学习相关经验的人都知道,中文……
thumbnail

Google工程师:如何看待程序员普遍缺乏数据结构和算法知识?

语言只是工具,而算法才是程序的灵魂。这句话,我估计你在编程之路上,已经听到过无数次。但具体到工作里,你是不是还会有下面这样的困惑? 数据结构和算法,……
thumbnail

R语言写个贝叶斯模型 预测老婆是否怀孕〜

妻子已经33天没有来月经了,她怀孕了,这真是天大的好消息! 通常月经的周期是大约一个月,如果你们夫妇打算怀孕,那么月经没来或许是一个好消息。但是33天,……
thumbnail

R语言对城管事件数据分析

这次使用主成分分析主要目的并不是降维,而是分析城管数据中的事件类别之间是否存在关系,当然,城管事件类型有好几百,这里就只选取从去年九月到目前发生量前……
thumbnail

GPU编程:学习Julia曲线绘制cpu和GPU实现方式

Julia 集介绍 Julia 集是由法国数学家 Gaston Julia 和 Pierre Faton 在发展了复变函数迭代的基础理论后获得的。 Julia 集也是一个典型的分形,只是在表达上相……
thumbnail

红黑树数据结构与算法图解

红黑树 红黑(Red-black)树是一种自平衡二叉查找树,1972年由Rudolf Bayer发明,它与AVL树类似,都在插入和删除操作时能通过旋转操作保持二叉查找树的平衡,以……