摘要: String 类 正则表达式 StringBuffer 文档说明 根据 StringBuffer 的文档说明可知: StringBuffer 是 线程安全 的,主要体现在它的方法上有 synchronized 同步锁,也因此导致其执行效率较低。 StringBuffer 虽然是线程安全的,但是其安全 阅读全文
posted @ 2019-11-24 14:54 学习趁早 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 数组 声明和初始化 错误的方式: 数组的属性 length 数组一经初始化,其长度就保持不变,通过这个属性可以轻易求出数组的长度。 数组的属性 length 数组一经初始化,其长度就保持不变,通过这个属性可以轻易求出数组的长度。 数组是一种引用类型 除基本数据类型外,其他的数据类型都是引用类型,因此 阅读全文
posted @ 2019-11-24 14:50 学习趁早 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 使用数组模拟栈和队列 使用数组模拟栈,包括栈的 push、pop 和 peek 操作。 使用队列实现栈 使用两个队列,一个是存储队列,一个是 help 队列。 helper() 将 queue 队列的数据转移到 help 队列中,只留下 queue 队列尾部的一个元素作为返回值 swap() 将 q 阅读全文
posted @ 2019-11-23 17:47 学习趁早 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 非基于比较的排序 非基于比较的排序与样本的数据状况有很大的关系,由于这个限制使其在工程中并不常用。 非基于比较的排序有桶排序,基数排序,计数排序。这三者都能做到排序的稳定性,时间复杂度为 O(n),空间复杂度为 O(n)。 问题一 计数排序和基数排序 假设存在一组数据,里面的数据只有 0 ~ 60 阅读全文
posted @ 2019-11-22 17:32 学习趁早 阅读(409) 评论(0) 推荐(0) 编辑
摘要: 比较器 当排序不是程序的主要内容时,使用自定义比较器能够较快的实现排序目的。需要实现 Comparator 接口。 在构建 PriorityQueue 、 TreeMap 、 TreeSet 时可以传入一个比较器,这时候加入自定义数据类型就会根据制定的比较器规则进行排序。 举个例子:设计一个比较的类 阅读全文
posted @ 2019-11-20 20:14 学习趁早 阅读(511) 评论(0) 推荐(0) 编辑
摘要: 对于 JDK 源码的一些误解 这是一篇小记录,起因是看到 Arrays 源码产生的不理解。 Arrays 内部源码居然是后来才写的,让我感到疑惑,后来想明白了,误解之处在于:一直认为 JDK 源码包内容是不能修改的;其实应该这么理解, Java 不会废除原有的特性 。 像 Python 2.x 到 阅读全文
posted @ 2019-11-20 12:39 学习趁早 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 排序算法的稳定性 排序的稳定性,指原有数据相同值的原始次序不变。 可以: 冒泡排序遇到相等的数不交换即可做到稳定。 插入排序,遇到相等的数即停止比较,插入数组。 归并排序 merge 过程中,遇到相等的值先填入左区域的值就可以做到稳定。 不可以: 选择排序不能做到稳定性,选择数值的时候交换数字是会打 阅读全文
posted @ 2019-11-20 11:50 学习趁早 阅读(698) 评论(0) 推荐(0) 编辑
摘要: 堆排序 注意,堆这个结构需要知道什么是满二叉树、完全二叉树。堆就是完全二叉树。 堆 使用数组存储数据,用数组模拟二叉堆结构,此时下标的关系有: 父结点 i 的左子结点为 2i + 1,右子结点为 2i + 2 子结点 i 找父结点公式为:(i 1) / 2 堆分大根堆和小根堆,每一个结点为子树的最大 阅读全文
posted @ 2019-11-19 21:52 学习趁早 阅读(517) 评论(0) 推荐(0) 编辑
摘要: 经典快排 经典快排的思路是选取数组的最后一个数 x,按照 "问题一" 的思路把整个数组划分成 两个部分,将 x 和 大于 x 部分数组的第一个元素交换位置。此时整个数组划分成 三个部分,也就是这一次排序将 x 值排好位置。 再分别对 和 中的数组递归划分,直到划分成一个数,此时所有元素也完成排序。 阅读全文
posted @ 2019-11-19 12:22 学习趁早 阅读(1113) 评论(0) 推荐(0) 编辑
摘要: 问题一 给定一个数组 arr,和一个数 num,请把小于等于 num 的数放在数组的左边,大于 num 的数放在数组的右边。 要求额外空间复杂度O(1),时间复杂度O(N)。 思路:遇到 arr[i] 小于等于 number 的数,交换 index + 1 和 arr[i],此时 index + 1 阅读全文
posted @ 2019-11-19 10:04 学习趁早 阅读(397) 评论(1) 推荐(0) 编辑