数据结构
文章平均质量分 96
绝不原创的飞龙
这个作者很懒,什么都没留下…
展开
-
数据结构思维 第三章 `ArrayList`
第三章 ArrayList 原文:Chapter 3 ArrayList 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译本章一举两得:我展示了上一个练习的解法,并展示了一种使用摊销分析来划分算法的方法。3.1 划分MyArrayList的方法对于许多方法,我们不能通过测试代码来确定增长级别。例如,这里是MyArrayList的get的实现:翻译 2017-09-03 19:57:12 · 39206 阅读 · 0 评论 -
数据结构思维 第十一章 `HashMap`
第十一章 HashMap 原文:Chapter 11 HashMap 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译上一章中,我们写了一个使用哈希的Map接口的实现。我们期望这个版本更快,因为它搜索的列表较短,但增长顺序仍然是线性的。如果存在n个条目和k个子映射,则子映射的大小平均为n/k,这仍然与n成正比。但是,如果我们与n一起增加k,我翻译 2017-09-21 17:52:31 · 37599 阅读 · 0 评论 -
数据结构思维 第八章 索引器
第八章 索引器 原文:Chapter 8 Indexer 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译目前,我们构建了一个基本的 Web 爬虫;我们下一步将是索引。在网页搜索的上下文中,索引是一种数据结构,可以查找检索词并找到该词出现的页面。此外,我们想知道每个页面上显示检索词的次数,这将有助于确定与该词最相关的页面。例如,如果用户提交检翻译 2017-09-12 19:37:50 · 38076 阅读 · 0 评论 -
数据结构思维 第十章 哈希
第十章 哈希 原文:Chapter 10 Hashing 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译在本章中,我定义了一个比MyLinearMap更好的Map接口实现,MyBetterMap,并引入哈希,这使得MyBetterMap效率更高。10.1 哈希为了提高MyLinearMap的性能,我们将编写一个新的类,它被称为MyBette翻译 2017-09-20 15:35:41 · 39283 阅读 · 0 评论 -
数据结构思维 第九章 `Map`接口
第九章 Map接口 原文:Chapter 9 The Map interface 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译在接下来的几个练习中,我介绍了Map接口的几个实现。其中一个基于哈希表,这可以说是所发明的最神奇的数据结构。另一个是类似的TreeMap,不是很神奇,但它有附加功能,它可以按顺序迭代元素。你将有机会实现这些数据结构翻译 2017-09-20 11:58:13 · 39055 阅读 · 0 评论 -
数据结构思维 第四章 `LinkedList`
第四章 LinkedList 原文:Chapter 4 LinkedList 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译这一章展示了上一个练习的解法,并继续讨论算法分析。4.1 MyLinkedList方法的划分我的indexOf实现在下面。在阅读说明之前,请阅读它,看看你是否可以确定其增长级别。public int indexOf(O翻译 2017-09-03 10:55:42 · 38926 阅读 · 0 评论 -
数据结构思维 第二章 算法分析
第二章 算法分析 原文:Chapter 2 Analysis of Algorithms 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译我们在前面的章节中看到,Java 提供了两种实现List的接口,ArrayList和LinkedList。对于一些应用,LinkedList更快;对于其他应用,ArrayList更快。要确定对于特定的应用,翻译 2017-09-03 10:22:35 · 38913 阅读 · 0 评论 -
数据结构思维 前言
前言 原文:Preface 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译本书背后的哲学数据结构和算法是过去 50 年来最重要的发明之一,它们是软件工程师需要了解的基础工具。但是在我看来,这些话题的大部分书籍都过于理论,过于庞大,也是“自底向上”的:过于理论算法的数学分析基于许多简化假设,它们限制了实践中的可用性。这个话题的许多描述都掩盖了简翻译 2017-09-02 16:01:35 · 39685 阅读 · 0 评论 -
数据结构思维 第一章 接口
第一章 接口 原文:Chapter 1 Interfaces 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译本书展示了三个话题:数据结构:从 Java 集合框架(JCF)中的结构开始,你将学习如何使用列表和映射等数据结构,你将看到它们的工作原理。算法分析:我提供了技术,来分析代码以及预测运行速度和需要多少空间(内存)。信息检索:为了激翻译 2017-09-02 15:57:19 · 39758 阅读 · 0 评论 -
数据结构思维 第五章 双链表
第五章 双链表 原文:Chapter 5 Doubly-linked list 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译本章回顾了上一个练习的结果,并介绍了List接口的另一个实现,即双链表。5.1 性能分析结果在之前的练习中,我们使用了Profiler.java,运行ArrayList和LinkedList的各种操作,它们具有一系列翻译 2017-09-01 19:30:06 · 39165 阅读 · 0 评论 -
数据结构思维 翻译完成
数据结构思维中文版原书:Think Data Structures: Algorithms and Information Retrieval in Java译者:飞龙版本:1.0.0自豪地采用谷歌翻译在线阅读PDF格式EPUB格式MOBI格式代码仓库赞助我协议CC BY-NC-SA 4.0翻译 2017-09-26 16:20:27 · 39768 阅读 · 0 评论 -
数据结构思维 第十六章 布尔搜索
第十六章 布尔搜索 原文:Chapter 16 Boolean search 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译在本章中,我展示了上一个练习的解决方案。然后,你将编写代码来组合多个搜索结果,并按照它与检索词的相关性进行排序。16.1 爬虫的答案首先,我们来解决上一个练习。我提供了一个WikiCrawler的大纲;你的工作是填写c翻译 2017-09-25 14:41:39 · 38708 阅读 · 0 评论 -
数据结构思维 第十五章 爬取维基百科
第十五章 爬取维基百科 原文:Chapter 15 Crawling Wikipedia 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译在本章中,我展示了上一个练习的解决方案,并分析了 Web 索引算法的性能。然后我们构建一个简单的 Web 爬虫。15.1 基于 Redis 的索引器在我的解决方案中,我们在 Redis 中存储两种结构:对翻译 2017-09-23 22:07:13 · 39086 阅读 · 0 评论 -
数据结构思维 第十四章 持久化
第十四章 持久化 原文:Chapter 14 Persistence 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译在接下来的几个练习中,我们将返回到网页搜索引擎的构建。为了回顾,搜索引擎的组件是:抓取:我们需要一个程序,可以下载一个网页,解析它,并提取文本和任何其他页面的链接。索引:我们需要一个索引,可以查找检索项并找到包含它的页面。翻译 2017-09-23 22:01:54 · 39547 阅读 · 0 评论 -
数据结构思维 第七章 到达哲学
第七章 到达哲学 原文:Chapter 7 Getting to Philosophy 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译本章的目标是开发一个 Web 爬虫,它测试了第 6.1 节中提到的“到达哲学”猜想。7.1 起步在本书的仓库中,你将找到一些帮助你起步的代码:WikiNodeExample.java包含前一章的代码,展示了翻译 2017-09-07 11:55:43 · 39583 阅读 · 0 评论 -
数据结构思维 第十三章 二叉搜索树
第十三章 二叉搜索树 原文:Chapter 13 Binary search tree 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译本章介绍了上一个练习的解决方案,然后测试树形映射的性能。我展示了一个实现的问题,并解释了 Java 的TreeMap如何解决它。13.1 简单的MyTreeMap上一个练习中,我给了你MyTreeMap的大纲翻译 2017-09-22 23:20:04 · 39447 阅读 · 0 评论 -
数据结构思维 第十二章 `TreeMap`
第十二章 TreeMap 原文:Chapter 12 TreeMap 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译这一章展示了二叉搜索树,它是个Map接口的高效实现。如果我们想让元素有序,它非常实用。12.1 哈希哪里不对?此时,你应该熟悉 Java 提供的Map接口和HashMap实现。通过使用哈希表来制作你自己的Map,你应该了解Ha翻译 2017-09-22 23:11:29 · 38756 阅读 · 0 评论 -
数据结构思维 第六章 树的遍历
第六章 树的遍历 原文:Chapter 6 Tree traversal 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译本章将介绍一个 Web 搜索引擎,我们将在本书其余部分开发它。我描述了搜索引擎的元素,并介绍了第一个应用程序,一个从维基百科下载和解析页面的 Web 爬行器。本章还介绍了深度优先搜索的递归实现,以及迭代实现,它使用 Jav翻译 2017-09-04 15:12:54 · 38715 阅读 · 0 评论 -
数据结构思维 第十七章 排序
第十七章 排序 原文:Chapter 17 Sorting 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译计算机科学领域过度痴迷于排序算法。根据 CS 学生在这个主题上花费的时间,你会认为排序算法的选择是现代软件工程的基石。当然,现实是,软件开发人员可以在很多年中,或者整个职业生涯中,不必考虑排序如何工作。对于几乎所有的应用程序,它们都使用翻译 2017-09-26 15:23:43 · 38165 阅读 · 0 评论