xyZGHio

听希尔伯特说 去寻找文明的痕迹


  • 首页

  • 标签

  • 分类

  • 文章列表

  • 关于我

  • 搜索

Maven(一): 依赖管理

发表于 2020-02-06 | 更新于: 2020-02-26 | 分类于 Maven |
字数统计: 3.4k | 阅读时长 ≈ 12

Long Long Ago,Java开发的依赖问题一直都是需要群众手工进行管理。耗时耗力不说,还TM容易出幺蛾子。直到后来Maven的出现,才彻底地扭转了这一局面。将人民群众从剪不断理还乱的依赖关系中解脱出来,全心全意地投入到为PM的服务当中去。相信很多人对Maven如何管理依赖已经有一个基础的认知了,此处就不再多言了。这里将主要对Maven依赖管理中不常见的容易忽略的知识点进行介绍

阅读全文 »

排序算法(四): Heap Sort 堆排序与 Top K 问题

发表于 2020-01-29 | 更新于: 2020-01-29 | 分类于 Sort Algorithm |
字数统计: 2.9k | 阅读时长 ≈ 11

现代基础性计算环境中,输入量的元素规模N会非常大,但有时候会只要求从中找出K个最大(或最小)的元素,即Top K问题。如果使用之前介绍的传统排序算法,先对N个元素进行全排序然后再取前K个元素,计算代价会变的非常高昂。因为我们实际上只需要Top K元素的排序,而剩余元素的详细排序结果我们其实并不care。而本文介绍的Heap Sort堆排序不仅是一种高效的排序算法,还可以很好地解决Top K问题

阅读全文 »

排序算法(三): Quick Sort 快速排序

发表于 2020-01-27 | 更新于: 2020-01-27 | 分类于 Sort Algorithm |
字数统计: 2.6k | 阅读时长 ≈ 10

之前的文章中,我们介绍了Merge Sort算法,其时间复杂度虽然是线性对数的,但是由于辅助数组的存在,致使其空间复杂度为线性的。那有没有一种排序算法,能够在时间、空间上都表现较为良好均衡呢?答案是有的,这就是在各种库中广泛使用的 Quick Sort 快速排序,简称”快排”

阅读全文 »

排序算法(二): Merge Sort 归并排序

发表于 2020-01-25 | 更新于: 2020-01-25 | 分类于 Sort Algorithm |
字数统计: 2k | 阅读时长 ≈ 7

Merge Sort 归并排序,比较类排序算法中的一种。该算法运用了典型的分治思想,将大规模的元素排序问题分解为一个个的小规模级别排序,然后将这些小问题各个击破、分别排序,最后将各小规模级别问题的排序结果归并到一起,即完成整体排序

阅读全文 »

排序算法(一): 初级比较排序

发表于 2020-01-23 | 更新于: 2020-04-02 | 分类于 Sort Algorithm |
字数统计: 1.6k | 阅读时长 ≈ 6

排序算法,作为算法中最基础的一部分。其中很多思想值得我们学习借鉴,故有必要了解、掌握一些常见常用的排序算法。排序算法根据是否使用比较元素的思想,可分为两大类:比较排序、非比较排序。本文,我们将对比较排序中的初级排序算法——Bubble Sort 冒泡排序、Selection Sort 选择排序、Insertion Sort 插入排序 一一进行介绍

阅读全文 »

Git(七): Maç下配置SSH代理

发表于 2020-01-22 | 更新于: 2020-02-12 | 分类于 Git |
字数统计: 376 | 阅读时长 ≈ 1

由于众所周知的原因,GitHub在国内访问日常抽风,对于Web页面,我们可以直接通过浏览器挂代理访问。但终端下通过SSH协议的访问,速度依然很慢,甚至会出现无法正常连接的情况。本文将介绍如何在Mac下配置Git的SSH协议代理

阅读全文 »

DFS 深度优先搜索

发表于 2020-01-21 | 更新于: 2020-01-21 |
字数统计: 875 | 阅读时长 ≈ 3

在上一次的文章中,我们介绍了图的一些基础知识及图的基础搜索算法之中的广度优先搜索BFS。本文我们介绍另外一种基础的图搜索算法——DFS 深度优先搜索

阅读全文 »

BFS 广度优先搜索

发表于 2020-01-19 | 更新于: 2020-01-21 |
字数统计: 1.7k | 阅读时长 ≈ 7

图,一种可以表示对象复杂连接关系的数据结构。其较可以其他数据结构而言,可以很方便描述地图、电路、网络等拓扑结构。本文将介绍图的描述方法和基本的图搜索算法——BFS 广度优先搜索

阅读全文 »

Bloom Filter 布隆过滤器

发表于 2020-01-12 | 更新于: 2020-01-12 |
字数统计: 2.3k | 阅读时长 ≈ 9

哈希表(又称作散列表)这种数据结构,通过计算元素在哈希表中的存储位置,可以快速判定该元素是否存在于该哈希表中,而无需遍历哈希表中全部元素一一进行比较。看上去哈希表这种数据结构是一个很好的工具,但是当数据量非常大达到亿级别,再加上为了解决哈希冲突的负载因子的缘故,使得哈希表的内存空间开销非常巨大,甚至会出现机器内存都无法支撑的情况。这种超大规模数据的场景下,如何快速判定一个元素是否在指定元素集合中?本文将详细介绍一种概率模型的数据结构——布隆过滤器(Bloom Filter)

阅读全文 »

Java List 迭代器删除元素细节的源码分析

发表于 2020-01-07 | 更新于: 2020-01-07 |
字数统计: 2.6k | 阅读时长 ≈ 11

Java List 迭代器用于遍历、删除等相关操作——Iterator、ListIterator,前者只能向后遍历,而后者则通过继承前者以提供了向前遍历的方法。本文将结合JDK源码解释迭代器遍历过程中删除元素的相关细节,具体以ArrayList为例进行分析,LinkedList迭代器与其虽在实现上略有差别,但是设计思想大同小异

阅读全文 »
1…8910…15
Aaron Zhu

Aaron Zhu

中国 · 南京

142 日志
5 分类
27 标签
GitHub E-Mail
友情链接
  • 安达卢西亚商会
  • Dongdong
  • 你好我是森林
  • Deep
© 2018 — 2021 Aaron Zhu
您是本站第 位访客 本站访问量 次
0%