Skip to content
wangpanbinPublic

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Algorithm

记录个人算法学习过程的日常。

项目结构

按学习阶段编号组织,每个目录是一个独立模块,内含若干 .java 类文件,每个类自带 main 方法作为运行入口与自测驱动。

src/
├── code01/   # 位运算基础
├── code02/   # 基础排序算法
└── code03/   # 二分查找专题

当前内容

  • code01/BinarySystem — 整数的二进制位打印
  • code02/Select — 选择排序,百万级随机数组对拍测试
  • code02/Insert — 插入排序,百万级随机数组对拍测试
  • code02/Bubble — 冒泡排序,百万级随机数组对拍测试
  • code02/ArrayUtil — swap / randomArr / copyArr / isEql 公共工具
  • code03/BinarySearch — 升序数组中查找目标值是否存在(exist 二分 / findNum 暴力对拍)
  • code03/FindLeft — 有序数组中找 >= num 的最左位置(二分)
  • code03/FindLeftChecker — FindLeft 的暴力对拍驱动,10 万次随机用例验证
  • code03/FindRight — 有序数组中找 <= num 的最右位置(二分 + 暴力对拍)
  • code03/FindPeakElement — 无重复元素数组中查找峰值下标(对应 LeetCode 162)

运行方式

需要 JDK,无需额外依赖。

# 编译(以 code03 为例)
javac -d out src/code03/*.java

# 运行某个类(以 FindRight 为例)
java -cp out code03.FindRight

也可直接在 IntelliJ IDEA 中打开 Algorithm.iml,右键 main 方法运行。

测试默认 100 万次随机用例,首次跑可能要几秒,可在 main 中调小 testTimes 快速验证。

学习约定

  • 每个算法类用 Arrays.sort 作对拍基准,出现差异立即打印原始数据/系统排序/算法排序三者对比
  • 工具方法统一放在 ArrayUtil,新增算法直接调用,不在类内重复定义
  • 提交遵循 Conventional Commits,如 feat(code02): ... / refactor(code02): ...

License

MIT

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages