今天是个转折点

今天是个转折点今天是一个转折点,人生的转折点。 等待这天好久好久了,上高中到现在我好像没有任何改变,只是一个比较努力的傻子。慢慢的我的生活好像失去了那些本该有的颜色,开心,以及能够让我高兴半个月或者好久好久的事情了。 只是每个周惯例的给爸爸妈妈打电话,我想跟他们多聊聊可是话到了嘴边又咽下去了,好像不知道什么时候起突然就变得这么懂事,乖巧,大家眼里的好孩子。可是啊,我一点也不开心,找不到开心的事,就连收到那么久以来梦寐以求的阿里 offer 的时候我也非常平静,只是高兴了那么一会会,也就一会...

Read More

二叉搜索树

一、操作: 判断元素是否存在:递归的在左右子树中查找 查找最小元素:在左子树中递归或者循环 查找最大元素:在右子树中递归或循环 插入:递归的插入,大于则插入在节点的右子树,小于则左子树,等于则是重复节点不作处理 删除:递归删除( 或者说递归查找需要删除的元素 ),找到该元素后,如果元素有两个子节点那么久找到这个元素的右子树的最小元素代替要删除的元素,然后再删除那个右子树上的最小元素。如果只有一个子节点直接让要被删除的节点赋值上他的子节点。 二、代码 1234567891011121314...

Read More

八大排序算法

​ 八大排序算法是面试经常考到的,尤其是快排,希尔排序和归并也是经常会让写代码的题目,其实只要用一句话说明了他们的原理我们写起代码就没那么困难。 冒泡排序思想:有 n 个数我们就进行 n-1 趟排序,每一趟我们都选取最大的一个数放到已经排序的位置即可。伪代码:两个 For 循环,外层表示要进行的趟数,内层则是找出最大的数,找最大的数的方法就是比较、交换。 时间复杂度:O(n2)空间复杂度:O(n)代码:1234567891011121314151617181920212223242...

Read More

数据结构Generic

​ 接下来我们要处理的是前面实现里另一个 根本性的缺陷 那些实现只适用于字符串,想要实现其他类型数据的队列和栈怎么办呢? 这个问题就涉及泛型的话题了。 ​ 有一个广泛采用的捷径是 使用强制类型转换对不同的数据类型重用代码 我们对Object类实现数据结构,Java中所有的类都是Object的 子类,当客户端使用时,就将结果转换为 对应的类型。这个我不想花很多时间来讲 因为我认为这样的解决方案不能令人满意。 ​ 第二种方法是用的是泛型 这种方法中客户端程序不需要强制类型转换...

Read More

数据结构Queue

​ 栈和队列其实是相同的,只是名字不一样 入栈换成了入队(enqueue),出栈换成了出队(dequeue)。语义 是不同的。入队操作向队尾添加元素,而出队操作从 队首移除元素。 ​ 现在,队列的链表表示中 我们需要维护两个指针引用。一个是链表中的第一个 元素,另一个是链表最后一个元素。插入的时候我们在 链表末端添加元素,而不是在链表头。移除元素的时候 不变,依然从链表头取出元素。那么这就是出队操作的实现 和栈的出栈操作的代码是一样的。保存元素,前进指针 指向下一个节点,这样就...

Read More

数据结构Stack

​ 在很多应用中,我们需要维护多个对象的集合,这种操作非常简单。我们可能想要向集合中 加入某个元素,去掉某个元素,以及遍历 集合中的元素并对他们执行某种操作,当然还有 检查集合是否为空。对于大多数操作来说,目的都很明确 关键是当需要去掉一个元素时,去掉哪一个元素呢?处理这类问题 有两个经典基础数据结构,栈和队列。 ​ 它们的区别就在于 去除元素的选择方式。在栈中,我们取出 最近加入的元素。插入元素对应的术语是入栈(push) 去掉最近加入的元素叫做出栈(pop)。这也叫做后进先...

Read More

Java 虚拟机对象布局及创建过程

一. 对象创建过程一、类加载​ 这个阶段其实主要做的就是类的加载验证,以及类的准备等等一系列的工作。为后面的类的初始化和解析做铺垫。 二、类解析​ 这个阶段主要对上面已经加载入内存的类进行词法语法的解析,形成语法树等操作。 三、类初始化​ 类初始化执行的就是 <clinit> 方法,以及在类中的各种常量的初始化(放入常量池中的常量)。 四、分配内存​ 虚拟机对所需要创建的对象分配内存,在类的解析的时候其实已经知道实例变量需要的堆空间了。此时只需要调用...

Read More

Java 虚拟机运行时数据区

运行时数据区:Java 虚拟机的运行时数据区按照大的可以分为线程独立使用的数据区,和所有线程共享的数据区。 一.线程独立使用数据区1.程序计数器 程序计数器其实就是 jvm 里面的pc,他指向的都是字节码的偏移量,也就是下一条要执行的字节码 当然这是 jvm 在执行 java 方法的时候,当程序在执行 navtive 方法的时候这时候起作用的其实是我们物理机上的 pc 此时 jvm 的 pc 是空值(undefine) 并且这个地方也是所有的 jvm 内存区完全不会抛出 OutOfMema...

Read More

今日总结20180304

八大排序算法 优先队列 红黑树 并查集 左式堆 栈的应用:逆波兰表达式计算、中缀表达式转后缀表达式 队列应用:杨辉三角、 最大子序列的和:分治、贪心 递归的四大原则: 基准情型:所有的递归都有一个基准,或者说是递归停止的界限,他是无序计算就能够得到的 不断推进:向着基准方向不断的推进,也就是递归的过程。 设计法则:我们假定递归的每一个环节都能运行,也就是我们无需考虑递归甚至调试追踪递归内部的情形 合成效益:不要进行重复的计算. 内部类的作用,静态内部类的特点。 二叉树表示表达式,先序...

Read More


Powered by Hexo and Hexo-theme-hiker

Copyright © 2015 - 2021 昨夜凛雨 All Rights Reserved.

UV : | PV :