- 博客(4)
- 收藏
- 关注
原创 排序
一、排序基础 二、冒泡排序 1、实现原理:比较交换 冒泡排序只会操作相邻的两个数据。每次冒泡操作都会对相邻的两个元素进行比较,看是否满足大小关系要求。如果不满足就让它俩互换。一次冒泡会让至少一个元素移动到它应该在的位置,重复 n 次,就完成了 n 个数据的排序工作。 该图是通过两两比较交换,从而使最大的慢慢冒到数组最顶端。 一般自己的写法是使最小的到达数组的最始端,冒得是最小值。 2、代码实现 最...
2020-01-29 19:44:10 119
原创 递归
一、符合运用递归的条件: 能够将大问题进行分解为各个类似的小问题 各个小问题的解法类同与大问题 有问题终止的条件 二、递归代码的写法: 先推导出数学公式 找到终止条件 基于此写代码 三、递归代码注意事项: 警惕堆栈溢出: 因为不停的函数调用,建立方法栈,若无终止条件,或者超出栈内存,则会溢出 解决方案: 1)确立的正确终止条件 2)限制递归调用的深度,即建立调用深度计数器。 递归中...
2020-01-29 13:56:56 142
原创 算法复杂度(时间与空间)
一、时间复杂度 1、含义: 时间复杂度代表一个算法的执行效率时间随数据规模增长的变化趋势。 2、计算公式: 时间复杂度与代码的执行次数成正比。 写法:T(n) = O(f(n)) 其中f(n)代表代码的执行次数总和。 3、计算法则:本质上是计算代码执行次数 常数项省略:其对增长趋势没有影响。 只需要计算循环执行最多的一段代码。 函数想加,等于量级最大的那一段循环代码执行次数。...
2020-01-26 14:37:30 222
原创 JVM内存回收
概述 正所谓垃圾收集,即内存回收,将一些用不到的对象等从内存中去掉,使内存充足,而不至于OOM。那就自然面临下面的三个问题? 哪些内存需要回收? 何时进行回收? 如何进行回收? 如何判断对象已死?(不再使用需要该对象) 只有先判断出该对象是否已死,才能确定是否对该对象占有的内存进行回收。 1、引用计数算法 对每个对象都有一个引用计数器,用来记录该对象被引用的次数。缺点就是很难解决对象之间的相互...
2020-01-10 16:22:08 103
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人