算法
文章平均质量分 81
算法
wsx_iot
这个作者很懒,什么都没留下…
展开
-
算法之位运算与数论(java)
整型的存储原码正数(包括+0):符号位为0,数值位由十进制转为二进制存储。负数(包括-0):符号位为1,数值位由十进制转为二进制存储。反码正数(包括+0):与原码一致。负数(包括-0):符号位与原码一致,数值位由原码按位取反。补码正数(包括0):与原码一致。负数:符号位与反码一致,数值位由反码加1。反码中的0只有一种形式,即全零存储。计算机中整型存储都用补码。java中Integer的范围为:-232 ~ 232 - 1,其他整型与Integer类似。位运算按位与原创 2020-07-16 07:08:48 · 258 阅读 · 1 评论 -
数据结构之图
文章目录代码Dijkstra算法代码Dijkstra算法import java.util.Scanner;/** * Dijkstra算法求单源最短路径,应用于非负权的有向图 * 输入示例: * 6 9 * 1 2 1 * 1 3 12 * 2 3 9 * 2 4 3 * 3 5 5 * 4 3 4 * 4 5 13 * 4 6 15 * 5 6 4 * 输出示例: * min(1->1): 0 * min(1->2): 1 * min(1->3)原创 2020-09-14 11:05:13 · 112 阅读 · 0 评论 -
数据结构之树(java)
概念完全二叉树除了最后一层结点,其它层的结点数都达到了最大值;同时最后一层的结点都是按照从左到右依次排布。二叉排序树(BST树)是一棵空树,或者:若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;它的左、右子树也分别为二叉排序树。平衡二叉树(AVL树)它是一棵二叉排序树,且具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。堆是一棵完全二叉树原创 2020-07-10 17:09:11 · 155 阅读 · 0 评论 -
数据结构总结(java)
动态规划贪心递归与回溯递归的基本性质就是函数调用,在处理问题的时候,递归往往是把一个大规模的问题不断地变小然后进行推导的过程。回溯则是利用递归的性质,从问题的起始点出发,不断地进行尝试,回头一步甚至多步再做选择,直到最终抵达终点的过程。排序概念辨析递归是自顶向下算法动态规划是自底向上算法数组优点构建非常简单能在 O(1) 的时间里根据数组的下标(index)查询...原创 2020-04-09 20:53:33 · 190 阅读 · 0 评论 -
排序总结(java)
总结类别名称最好时间复杂度最坏时间复杂度平均时间复杂度空间复杂度稳定性选择排序简单选择排序O(n^2)O(n^2)O(n^2)O(1)不稳定选择排序堆排序O(nlogn)O(nlogn)O(nlogn)O(1)不稳定交换排序快速排序O(nlogn)O(n^2)O(nlogn)O(nlogn)不稳定插入排序直接插...原创 2020-04-12 21:43:38 · 186 阅读 · 0 评论 -
搜索总结(java)
二分查找class Solution{ public int binarySearch(int[] arr, int target) { int l = 0, h = arr.length - 1; while (l <= r) { int mid = (l + h) / 2; if (arr[mid] == target) { return mid; } els原创 2020-05-16 22:17:59 · 158 阅读 · 0 评论 -
回溯算法总结(java)
回溯算法回溯法按深度优先策略搜索问题的解空间树。首先从根节点出发搜索解空间树,当算法搜索至解空间树的某一节点时,先利用剪枝函数判断该节点是否可行(即能得到问题的解)。如果不可行,则跳过对该节点为根的子树的搜索,逐层向其祖先节点回溯;否则,进入该子树,继续按深度优先策略搜索。回溯法的基本行为是搜索,搜索过程使用剪枝函数来为了避免无效的搜索。剪枝函数包括两类:1. 使用约束函数,剪去不满足约束条件的路径;2.使用限界函数,剪去不能得到最优解的路径。回溯算法说白了就是穷举法。不过回溯算法使用剪枝函数,剪去一原创 2020-04-15 08:11:43 · 6249 阅读 · 3 评论 -
动态规划算法总结(java)
什么是动态规划动态规划是一种多阶段决策最优解模型,一般用来求最值问题,多数情况下它可以采用自下而上的递推方式来得出每个子问题的最优解(即最优子结构),进而自然而然地得出依赖子问题的原问题的最优解。最优子结构性质重叠子问题性质自底向上算法判断题目是否能用动态规划判断是否可用递归来解分析在递归的过程中是否存在大量的重复子问题采用备忘录的方式来存子问题的解以避免大量的重复计算(剪枝...原创 2020-04-12 15:15:40 · 411 阅读 · 0 评论 -
贪心算法总结(java)
什么是贪心算法最优子结构性质贪心选择性质无后效性自顶向下算法经典问题原创 2020-04-14 10:10:15 · 216 阅读 · 0 评论