分类: 数据结构与算法
交换排序算法讲解及swift代码实现
看一种最简单的排序算法(也是性能最低的,也是最好理解的),在这里先称之为“交换排序”。
注意,这个名称是笔者自己起的,在互联网和相关技术书籍上面没有……
递归概念与算法实现原理|swift代码演练
递归的实现原理
递归的调用实际上是通过调用栈(callback stack)来实现的,笔者用一张图从factorial(3)开始调用到最后得出6这个顺序之间发生的事情画了出来……
算法基础概念、时间与空间复杂度:swift代码实例
算法的概念
算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。
摘自《大话数据结构》
简单说来,算法……
排序算法之希尔排序:java、Kotlin、python代码实现
希尔排序
核心:基于插入排序,使数组中任意间隔为 h 的元素都是有序的,即将全部元素分为 h 个区域使用插入排序。其实现可类似于插入排序但使用不同增量。……
排序算法之插入排序:java、Kotlin、python代码实现
插入排序(Insertion Sort)
通过构建有序序列,对于未排序序列,从后向前扫描(对于单向链表则只能从前往后遍历),找到相应位置并插入。实现上通常使用 in-pla……
排序算法之选择排序:java、Kotlin、python代码实现
选择排序(Selection Sort)
选择排序就是找到数组中最小元素将其和数组第一个元素交换位置,然后在剩下的元素中找到最小元素并将其与数组第二个元素进行交换……
排序算法思路之冒泡:java、python代码实现
冒泡排序(Bubble Sort)
冒泡排序的核心部分是双重嵌套循环,持续比较相邻元素,大的挪到后面,因此大的会逐步往后挪,故称之为冒泡。
算法思路
比较相邻的元……
斯坦福大学《机器学习与数据挖掘公开课》:梯度下降算法和正规方程组学习笔记
算法中用到了许多线性代数的知识。所以我感觉有必要先对线性代数的基础知识做一个回顾和梳理。
1基础概念和记号
线性代数对于线性方程组可以提供一种简便的表……
计算机科学中的线性代数—软件开发者必学
矩阵在计算机科学、统计学和应用数学中占有独一无二的地位。一个 m×n 矩阵可以对 m 个对象(每个对象由 n 个特征描述)在有限单元网格中的离散微分算子信息进……
图解数据结构和算法:B树
B树
B树即平衡查找树,一般理解为平衡多路查找树,也称为B-树、B_树。是一种自平衡树状数据结构,能对存储的数据进行O(log n)的时间复杂度进行查找、插入和……
javascript数据结构与算法:图的遍历、广度|深度优先搜索
2.1 图的相关概念
由一条边连接在一起的顶点称为相邻顶点。一个顶点的度是其相邻顶点的数量。如果图中不存在环,则称该图是无环的。
如果图中每两个顶点间都存……
Javascript 数据结构与算法:二叉树和二叉搜索树
1 树
一个树结构包含一系列存在父子关系的节点。每个节点都有一个父节点(除了顶部的第一个节点)以及零个或多个子节点。位于树顶部的节点叫作根节点(11)。它没……