二分查找法

什么是二分查找

要解决的问题

在海量的数据中,如何以最快的速度定位到一个特定的目标? 如果数据是无序的,我们只能像 “大海捞针” 一样逐个检查(线性查找);但如果数据是有序的,我们就可以利用位置关系,成倍地缩小搜索范围。


高级排序算法

高级排序

希尔排序

排序原理:

  1. 选定一个增长量 h,按照增长量 h 作为数据分组的依据,对数据进行分组;
  2. 对分好组的每一组数据完成插入排序;
  3. 减小增长量,最小减为 1,重复第二步操作。

简单排序算法

冒泡排序

冒泡排序是一种交换类排序算法。它的核心思想是通过重复走访要排序的数列,依次比较相邻的两个元素。如果它们的顺序错误(比如前面的比后面的大),就交换过来。就像水底的气泡一样,越大的元素会经由交换慢慢 “浮” 到数列的顶端。冒泡排序虽然在处理大规模乱序数据时效率较低,但它具有实现简单、不占额外内存且保持顺序稳定的优点。它是理解算法思维、循环控制逻辑以及 “空间换时间” 优化理念的最佳入门案例。

Maven资源文件的打包与过滤

默认打包测试

根据 Maven 的默认项目结构,资源文件放置在 src/main/resources 中,测试的资源文件在 src/test/resources 中。放置在 src/main/resources 中的资源文件默认会被打包进 jar 中。

注:如果配置文件放置在src/main/resources 下,则默认打包后该配置文件位于jar包的根目录下;

如果配置文件放置在src/main/resources/aaa 下,则默认打包后该配置文件位于jar包的根目录下的/aaa目录下;

如果配置文件放置在src/main/resources/META-INF 下,则默认打包后该配置文件位于jar包的根目录下的 /META-INF目录下;