
算法
文章平均质量分 84
使用java语言对经典的算法进行实现
强钦钦
心有猛虎,嗷呜嗷呜
展开
-
ip地址与整数间互相转换的思路及实现
文章目录概念将IP地址转化成整数形式:将整数转换成字符串形式的ip地址相关链接概念IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。每台联网的PC上都需要有IP地址,才能正常通信。我们可以把“个人电脑”比作“一台电话”,那么“IP地址”就相当于“电话号码”,而Internet中的路由器,就相当于电信局的“程控式交换机”。-IPV4地址是一个** **的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节)。IP地址通常原创 2021-06-25 19:36:34 · 627 阅读 · 0 评论 -
并查集概念及重要代码实现
文章目录概念等价类例题UFSets类搜索操作(找x所在树的根节点)递归非递归并操作手动模拟Union优化NiceUnion折叠规则打印每个集合main并查集属于聚合类型算法。概念等价类 例题 #### 程序模拟## 代码UFSets类class UFSets { private int[] parent; //原创 2021-06-22 21:01:35 · 669 阅读 · 1 评论 -
回溯法概念和重要习题实现
文章目录概念找所有子集题目思路代码递归非递归main01背包穷举mainn后问题题目思路代码NQueen类搜索(递归)判断有无冲突打印结果main输出结果概念回溯法有“通用的解题法”之称,可以系统地搜索一个问题的所有解或任一解,它是一个既带有系统性又带有跳跃性的搜索算法。在问题的解空间树中,按深度优先策略,从根结点出发搜索解空间树,算法搜索至解空间树的任一结点时,先判断该结点是否包含问题的解如果肯定不包含,则跳过对以该结点为根的子树的搜索,逐层向其祖先结点回溯;否则,进入该子树,继续按深原创 2021-06-21 00:28:42 · 795 阅读 · 1 评论 -
动态规划的思想及重要习题实现
文章目录概念最长公共子序列递归递归优化打印展示得到最长的公共子序列的字母顺序填s表和c表递归填表算法(非递归)打印最长公共序列main打家劫舍题目:示例代码机器人路径题目示例思路代码概念动态规划算法与分治法类似,其基本思想是将待求解问题分解成若干子问题,先求解子问题,再结合这些子问题的解得到原问题的解。与分治法不同的是,适合用动态规划法求解的问题经分解得到的子问题往往不是互相独立的。若用分治法来解这类问题,则分解得到的子问题数目太多,以致最后解决原问题需要耗费指数级时间。然而,不同子问题的数目常常只有原创 2021-06-16 22:36:55 · 1452 阅读 · 2 评论 -
快排的实现、优化及应用
文章目录数组快排递归非递归优化链表快排找第k小数组快排递归非递归优化链表快排找第k小原创 2021-06-08 21:09:04 · 999 阅读 · 0 评论 -
数组初始化为随机值并且不能重复
文章目录题目:生成随机数0...91...10保证值不重复法1:暴力查找法2:查表法3:HashNode(key,value)思考法4:HashSet存字符串题目:定义一个int型的一维数组,包含10个元素,用随机整数初始化。生成随机数0…9int tmp=(int) (Math.random()*10);//[0.0,1.0) 强转 注意优先级(后面*10要带括号)//int tmp=new Random().nextInt(10);//0...91…10只需要在上面的基础上加个1原创 2021-06-07 17:29:27 · 664 阅读 · 0 评论 -
红黑树的概念及重要算法实现
文章目录RB树定义:概述:RB树性质:思考:结构设计:左旋:右旋:插入:调整:等价判断p在 双亲的双亲的 右边插入过程图RB树定义:概述:红黑树(Red Black Tree) 是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。红黑树和AVL树类似,都是在进行插入和删除操作时通过特定操作保持二叉查找树的平衡,从而获得较高的查找性能。它虽然是复杂的,但它的最坏情况运行时间也是非常良好的,并且在实践中是高效的: 它可以在O(log n)时间内做查找,插入和删除原创 2021-06-05 18:45:36 · 398 阅读 · 0 评论 -
java中enum的用法示例
文章目录例1:代码:输出:例2:结构:代码:ColorTypeTest_Enum输出相关资料:例1:代码:import java.util.EnumSet;enum WeekDay { SUN, MON, TUE, WED, THT, FRI, SAT}public class Test_Enum { public static void main(String[] args) { EnumSet<WeekDay> week = En原创 2021-06-05 12:13:47 · 787 阅读 · 1 评论 -
AVL树重要算法的实现
文章目录AVL树的定义AVL 树结构设计单旋转左单旋(RotateLeft )右单旋 (RotateRight )双选转先左后右双旋转 (RotationLeftRight) // LeftBalance先右后左双旋转 (RotationRightLeft) // RightBalance调整插入AVL树的定义Adelson-Velsky-Landis Tree,是最先发明的自平衡二叉查找树,由作者名字命名一棵AVL树或者是空树,或者是具有下列性质****的二叉排序树:1.它的左子树和右子树都是A原创 2021-06-03 18:40:06 · 192 阅读 · 0 评论 -
二叉树重要题目的实现
文章目录顺序存储结构设计:先序遍历递归实现按链表存放按数组存放非递归实现中序遍历递归按链表存放按数组存放非递归后续遍历递归非递归创建二叉树输入顺序存储的前序遍历序列创建一个二叉树函数实现main函数通过先序和中序遍历创建二叉树在指定范围内 找到 某个根节点 在中序序列中的位置pos建树main函数通过后序和中序遍历创建二叉树在指定范围内 找到 某个根节点 在中序序列中的位置pos建树给定先序和后序序列无法创建二叉树按数组顺序存放二叉树转化为链式二叉树,返回根节点非递归层次遍历非递归查找树里有没有含有某值原创 2021-06-01 16:39:31 · 121 阅读 · 0 评论 -
BST树常见算法的分析、实现与优化
文章目录知识点:结构设计:查询递归实现非递归实现插入建树中序遍历非递归判断是不是二叉排序树非递归删除数据代码知识点:1.英文名Binary Search Tree,叫 二叉排序树 ,也叫 二叉搜索树。2. 二叉搜索树 或者是一棵空树,或者是具有下列性质的二叉树:每个结点都有一个作为搜索依据的关键码(key),所有结点的关键码互不相同。左子树(如果存在)上所有结点的关键码都小于根结点的关键码。右子树(如果存在)上所有结点的关键码都大于根结点的关键码。(即左<根<右)左子树和右子树也原创 2021-06-01 12:46:42 · 964 阅读 · 0 评论 -
分治与递归习题整理
文章目录求解n的阶乘注意:递归解法非递归解法求解 Fibonacci 数列题目:递归解法代码复杂度分析递归调用图优化时间复杂度非递归解法二分查询步骤思考递归实现非递归实现全排列分析代码PermMain子集问题分析代码get_SubsetMain输出结果求解n的阶乘注意:cpu代表的是时间方向 可以耗损的时间是无穷的,所以可以无限循环内存代表的是空间方向 内存是有限的,所以不能无限递归阶乘结果 超出int范围(4字节)怎么办?n是有符号数时,限制n不能大于12,或者 令溢出时为负数时为-原创 2021-05-18 20:50:02 · 2473 阅读 · 1 评论