算法与数据结构
little-motor
这个作者很懒,什么都没留下…
展开
-
Object类中的hashcode方法
转自:https://mp.weixin.qq.com/s/qjEEU7nWo3xJXLjo_apjww引言这两天有个学弟问过我这个问题:对象的hashCode 到底是怎么实现的?在深挖之前,我可能只能说:如果没有被重载,代表的是对象的地址通过某种 hash 算法计算后在 hash 表中的位置。回答后,仔细一想,不对呀,这个 hash 值具体是怎么计算的,我终究还是没有答到点上,而是绕开话题,回答了含义。脑壳一热,忽然想起去年虐我的阿里面试题,hashCode 是怎么得到的呢?一、..转载 2020-07-02 13:21:59 · 2860 阅读 · 0 评论 -
HashMap中的hash方法
转自:JDK 源码中 HashMap 的 hash 方法原理是什么? - 胖君的回答 - 知乎 https://www.zhihu.com/question/20733617/answer/111577937<div class="RichContent-inner"><span class="RichText ztext CopyrightRichText-richText" itemprop="text">这段代码叫“<b>扰动函数</b>”。&.转载 2020-07-06 14:03:05 · 999 阅读 · 0 评论 -
详解队列Queue
文章目录1. 引言2. 阻塞队列与非阻塞队列3. 子类简述3.1 未实现阻塞接口的3.2 实现阻塞接口的4. 基本操作方法5. PriorityQueue5.1 简介1. 引言Queue: 基本上,一个队列就是一个先入先出(FIFO)的数据结构,优先队列除外其更具comparator或者comparable实现进行比较。Queue接口与List、Set同一级别,都是继承了Collection...转载 2019-11-28 09:53:45 · 749 阅读 · 0 评论 -
Java基础——散列表
文章目录1. 引言2. 散列3. 散列函数和散列码1. 引言散列非常高效,使用散列将耗费O(1)时间来查找、插入以及删除一个元素。2. 散列散列使用一个散列函数,将一个键映射到一个索引上。先回顾一下映射表(map)又称字典(dictionary)、散列表(hash table)或者关联数组(associate array),是一种使用散列实现的数据结构,用来存取条目的容器对象。Jav...原创 2018-10-26 14:50:43 · 4418 阅读 · 0 评论 -
Java数据结构基础——线性表、栈、队列和优先队列
1. 引言2. 合集3. 迭代器4. 线性表4.1 List接口中的通用方法1. 引言为一个特定的任务选择最好的数据结构和算法是开发高性能软件的一个关键。在面向对象思想里,一种数据结构也被认为是一个容器(container)或者容器对象(container object) ,他是一个能存储其他对象的对象,这里的其他对象常称为数据或者元素。 Java提供了很...原创 2018-07-14 22:20:59 · 531 阅读 · 0 评论 -
Java算法基础——排序
1. 约定2. 插入排序2.1 算法思想2.2 时间复杂度2.3 程序清单3. 冒泡排序3.1 算法思想3.2 时间复杂度3.3 程序清单4. 归并排序4.1 算法思想4.2 时间复杂度4.3 代码清单5. 快速排序5.1 算法思想5.2 时间复杂度5.3 代码清单6. 堆排序6.1 算法思想6.2 堆存储6.3 添加新的节点6.4 ...原创 2018-07-19 10:18:44 · 197 阅读 · 0 评论 -
Java数据结构基础——实现线性表和链表
1. 引言2. 线性表的通用特性2.1 MyList接口2.2 MyAbstractList抽象类3. 数组线性表3.1 MyArrayList实现类3.2 MyArrayList测试类1. 引言通过接口MyList定义通用功能,抽象类MyAbstractList实现部分功能,MyArrayList和MyLinkedList实现类的方式进一步理解...原创 2018-07-23 11:47:10 · 909 阅读 · 1 评论 -
开发高效算法
1. 引言2. 使用大O符号来衡量算法效率3. 分析算法的时间复杂度3.1 二分查找算法3.2 常用的递推关系3.3 比较常用的增长函数4. 总结1. 引言算法设计是为了解决某个问题开发一个数学流程。算法分析是预测一个算法的性能。2. 使用大O符号来衡量算法效率大O符号标记可以基于输入的大小得到一种衡量算法时间复杂度的函数。可以忽略函数...原创 2018-07-17 14:32:34 · 1827 阅读 · 0 评论 -
Java数据结构基础——集合和映射表
1. 引言2. 集合2.1 HashSet2.2 LinkedHashSet2.3 TreeSet3. 比较集合和线性表的性能4. 映射表4.1 HashMap4.2 LinkedHashMap4.3 TreeMap5. 总结1. 引言集合(set)是一个用于存储和处理无重复元素的高效数据结构。映射表(map)类似于目录,提供了使用键值快速查...原创 2018-07-16 23:59:35 · 2797 阅读 · 0 评论 -
数据结构之逻辑结构与物理结构(存储结构)
1.逻辑结构:逻辑结构分为四种类型:集合结构,线性结构,树形结构,图形结构。1.1 所谓集合结构:表面意思,没有什么深刻意义,就是数据元素同属一个集合,单个数据元素之间没有任何关系。如下图所示。 1.2 线性结构:类似于线性关系,也就是说,线性结构中的数据...转载 2018-06-27 21:22:42 · 33889 阅读 · 1 评论 -
队列和栈的异同
1. 队列先进先出,栈先进后出。2. 接口实现的异同队列和栈同属于Java合集框架,由Collcetion接口实现,队列由Queue接口实现,栈由List接口实现,3. 逻辑结构和存储结构的的异同他们的逻辑结构同为队列,存储结构为线性结构或者链式结构4. 方法的异同他们同时含有绝大部分Collection接口中声明的方法,但同时两者各有扩展的方法,队列提供了四个操作头节点的方法<interf...原创 2018-06-30 12:07:48 · 5384 阅读 · 1 评论