Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
数据结构---求用二进制表示的数字最右侧的1的位置
public static void main String args int e 700 int rightvalue e e 1 int rightPosition 0 for int i rightvalue i gt 1 i i g
数据结构和算法
数据结构
Java
开发语言
单链表的链表拆分
1 定义三的指针变量 p q t p指向原链表的头结点head1 新建另一个头结点head2 q指向head2 t指向head1的next结点 两个头结点的next都设为空 2 按照条件分配t指向的结点 如果将这个结点连接到head1的链表
数据结构和算法
c
链表
链表拆分
数据结构和算法(5)-----树
一 哈夫曼树 基本介绍 给定n个权值作为n个叶子结点 构造一棵二叉树 若该树的带权路径长度 wpl 达到最小 称这样的二叉树为最优二叉树 也称为哈夫曼树 Huffman Tree 还有的书翻译为霍夫曼树 赫夫曼树是带权路径长度最短的树 权值
数据结构和算法
哈希(Hash)和哈希树(Merkle tree)
哈希函数 英语 Hash function 又称散列函数 是一种从任何一种数据中创建小的数字 指纹 的方法 散列函数把消息或数据压缩成摘要 使得数据量变小 将数据的格式固定下来 该函数将数据打乱混合 重新创建一个叫做散列值 哈希值 hash
数据结构和算法
【数据结构和算法】时间复杂度和空间复杂度
目录 一 前言 二 时间复杂度 2 1时间复杂度表示形式 2 1 1规则 3 1如何计算时间复杂度 3 1 1线性阶 3 1 2平方阶 3 1 3对数阶 常见的时间复杂度排序 三 空间复杂度 3 1Java的基本类型内存占用 一 前言 数据
数据结构和算法
算法
数据结构
排序算法
3-排序算法
冒泡排序 冒泡排序的思路是将每两个数据之间进行大小比对 将大的数据后移 反复比对移动数据 直至数组排列整齐 include
数据结构和算法
c语言
数据结构---求最大公约数
求最大公约数 穷举法 辗转相除法法 第一步 第二步 第三步 JAVA实现 更相减损术 第一步 第二步 第三步 JAVA实现 更相减损术与移位相结合 操作逻辑 例子 JAVA实现 写一段代码 求出两个整数的最大公约数 要尽量优化算法的性能 例
数据结构和算法
数据结构
Java
算法
数据结构---二叉树路径问题
二叉树路径问题 二叉树所有路径 分析 JAVA实现 力扣提交 找到一个和为sum的到达叶子节点的路径 分析 JAVA实现 力扣提交 求路径 中间一段 C 实现 打印根节点到任意节点的路径 JAVA实现 二叉树所有路径 257二叉树所有路径
数据结构和算法
数据结构
深度优先
Java
图的邻接矩阵、邻接表存储和图的广度优先搜索(BFS)、深度优先搜索(DFS)
图的邻接矩阵 邻接表存储和图的广度优先搜索 BFS 深度优先搜索 DFS 图及其存储方式 广度优先搜索 深度优先搜索 本文将先介绍图的存储方式 邻接矩阵和邻接表 接着介绍图的基本算法 广度优先搜索和深度优先搜索 图及其存储方式 图是一种非线
数据结构和算法
数据结构
算法
深度优先搜索
广度优先搜索
数据结构---桶排序
桶排序 第一步 第二步 第三步 第四步 JAVA实现 时间复杂度 空间复杂度总结 每一个桶 bucket 代表一个区间范围 里面可以承载一个或多个元素 第一步 就是创建这些桶 并确定每一个桶的区间范围 我们这里创建的桶数量等于原始数列的元素
数据结构和算法
数据结构
Java
算法
两个栈实现队列 和 两个队列实现栈
1 两个栈实现队列 核心 push操作 每次总是往stack1 push元素 pop操作 每次总是从stack2 pop元素 分stack2是否empty分为两种情况 static final Stack
数据结构和算法
蓝桥杯
c
P2P
二叉搜索树 (BST) 的插入, 删除, 查找
文章目录 二叉搜索树 BST 的定义 缺点 BST 的构建 BST 的插入 BST 的查询 BST 的删除 BST 的检验 二叉搜索树 BST 的定义 二叉搜索树 Binary Search Tree 的结点定义一般如下 typedef s
数据结构和算法
Go语言数据结构-二叉树
定义 二叉树是一种数据结构 它是由 n n 1 个有限节点组成一个具有层次关系的集合 根节点 最上面的节点 叶子节点 左右子节点都为nil的节点 特点 每个节点有零个或两个子节点 没有父节点的节点称为根节点 每一个非根节点有且只有一个父节点
Golang
数据结构和算法
数据结构
二叉树
数据结构和算法(压缩矩阵和队列模拟)
具体思路和分析放在末尾 稀疏矩阵的处理方法是 1 记录矩阵一共有几行几列 有多少个不同的值 2 把具有不同值的元素的行列和值记录都在一个小规模的矩阵中 从而缩小程序的规模 原始矩阵转换稀疏矩阵的思路 1 遍历原始的二维数组 得到有效数据的个
数据结构和算法
队列
链表
算法
数据结构
python垃圾回收
Python内存管理机制 Python内存管理机制主要包括以下三个方面 引用计数机制 垃圾回收机制 内存池机制 引用计数 举个例子说明引用是什么 a 1 如上为一个简单的赋值语句 1就是对象 a就是引用 引用a指向对象1 同理 b 1 b也
python
数据结构和算法
C语言实现图的邻接矩阵存储结构及深度优先遍历和广度优先遍历
DFS的核心思想在于对访问的邻接节点进行递归调用 BFS的核心思想在于建立了一个邻接节点的队列 在Dev C 中调试运行通过 用下图进行了测试 include
数据结构和算法
数据结构---堆排序
堆排序 JAVA实现 和快速排序区别 二叉堆的构建 删除 调整是实现堆排序的基础 之前博客写了二叉堆 二叉堆 最大堆的堆顶是整个堆中的最大元素 最小堆的堆顶是整个堆中的最小元素 堆排序步骤 把无序数组构建成二叉堆 需要从小到大排序 则构建成
数据结构和算法
数据结构
Java
数据结构与算法-时间复杂度计算方式
概念 1 时间复杂度是计算代码运行效率的重要指标 用大写的O表示 2 常见的复杂度 按照从小到大 O 1 lt O logn lt O n lt O nlogn lt O n 2 O x n 2 3 在代码优化方面 O 1 O logn O
数据结构和算法
数据结构
算法
【数据结构与算法】深入浅出递归和迭代的通用转换思想
深入浅出递归和迭代的通用转换思想 一般来说 能用迭代的地方就不要用递归 理论上讲 所有的递归和迭代之间都能相互转换 刷题碰到 一天一道LeetCode 130 Surrounded Regions所以来总结一下递归和迭代 一 何为迭代 首先
数据结构和算法
数据结构
算法
迭代
递归
数据结构---插入排序
插入排序 算法思想 具体流程 JAVA实现 算法时间复杂度为O n2 的排序 冒泡排序 弊端 元素交换次数太多了 选择排序 弊端 当数列包含多个值相等的元素时 选择排序有可能打乱它们原有的顺序 插入排序 算法思想 维护一个有序区 把元素一个
数据结构和算法
数据结构
«
1
2
3
4
5
6
7
»