![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 70
InterestAndFun
JVM垃圾回收为何不使用360安全卫士?
展开
-
Java后台实现拖拽树状控件排序的数据持久化操作
很久没练习过数据结构了,重新整理学习了一下,这只是一个大概的方案,可优化的地方很多,比如对归档的节点(已找完树结构的节点)做一个移除操作,能大幅度提升程序处理的速度,可考虑使用链表来实现。具体的细节可根据业务场景补充。原创 2023-02-09 16:55:29 · 1986 阅读 · 12 评论 -
位运算知识讲解与刷题
位运算为什么需要位运算?计算机的数字表示方式和存储格式就是二进制链接:十进制与二进制之间的转换1. 位运算符标准 左移/右移 就是将所有位数整体 左移/右移 ,挤出去的不要,空出的位置补0含义运算符示例左移<<0011 => 0110右移>>0110 => 0011按位或|0011 | 1011 => 1011 (两个数对应的位上有1即1,同0则0)按位与&0011 & 1011原创 2021-11-05 11:01:19 · 183 阅读 · 0 评论 -
递归算法学习
递归算法学习入门定义递归的定义非常简单,就是方法自身调用自身。他会一层一层地自下而上叠上去,最终一层一层地自上而下退出。递归最常用于树的遍历操作中。递归需要注意虚拟机栈的内存空间大小,压栈的层数不能过多,否则会出现栈内存溢出的问题。一个递归方案里面需要包括:结束条件、当前层操作、调用下一层Java 递归模板public void recursion(int level, int param1, int param2) { // recursion terminator // 递归原创 2021-11-01 16:08:04 · 296 阅读 · 0 评论 -
时间复杂度讲解
1. 编程风格自顶向下编程编码风格2. 时间复杂度分析理论上来讲,时间复杂度可以通过非常严谨的数学公式去证明 https://www.zhihu.com/question/21387264 在这里我们主要就讲一下,怎样通过观察程序代码去判断算法的时间复杂度。**算法的表示方法:**Big O notationO(1):常数复杂度O(logn):对数复杂度O(n):线性时间复杂度O(n2):平方O(n3):立方O(2n):指数O(n!):阶乘怎么判断时间复杂度?程序代码原创 2021-10-06 15:53:24 · 420 阅读 · 0 评论 -
排序算法模板
排序算法模板初级排序初级排序 - O(n2)1. 选择排序:每次找最小值,然后放到待排序数组的起始位置public int[] selectionSort(int[] arr) { int len = arr.length; int minIndex, temp; for (int i = 0; i < len - 1; i++) { minIndex = i; for (int j = i + 1; j < len; j++)原创 2021-08-30 16:58:30 · 160 阅读 · 0 评论 -
动态规划入门题目详解
动态规划 Dynamic Programming1. 名称理解Programming 是编程的意思,个人认为翻译成规划,有点不太合适。那有人就说了,人家的算法实现方式就是规划的啊。我们看看英文的解释:Simplifying a complicated problem by breaking it down into simpler sub-problems in a recursive manner. 翻译过来就是:用递归的方式将一个复杂的问题分解为简单的子问题。这不就是分治嘛。所以 Dynamic P原创 2021-08-20 17:45:25 · 236 阅读 · 0 评论 -
美丽的2(Java版解法)
题目描述小蓝特别喜欢 2,今年是公元 2020 年,他特别高兴。他很好奇,在公元 1 年到公元 2020 年(包含)中,有多少个年份的数位中包含数字 2?代码描述public class BeautifulTwo { public static void main(String[] args) { int count = 0; for (int i = 1; i <= 2020; i++){ int temp = i;//原创 2021-04-11 17:07:07 · 1295 阅读 · 2 评论