- 博客(4)
- 资源 (4)
- 收藏
- 关注
原创 双轴快速排序和TimSort
对于对象数组的排序,`Arrays.sort` 方法使用了基于 Timsort 的排序算法。1. **分段**:将输入数组拆分成若干个有序的 "run"(即段),每个 run 的长度通常是一个可以动态变化的值。2. **使用插入排序对小段进行排序**:对于每个长度较短的 run,使用插入排序进行排序。2. **排序**:如果每个 run 的长度较短,使用插入排序对每个 run 进行排序。// 使用 TimSort。3. **归并**:将这些有序的 run 带有最小的开销合并,使用标准的归并排序方法。
2024-07-25 17:19:22
343
原创 快速排序的时间复杂度分析
如果一个非负函数 ( T(n) ) 可以被另一个非负函数 ( g(n) ) 以常数因子和一个偏移 n0 定界,那么我们说:也就是说存在常数 ( c > 0 ) 和 ( n_0 \geq 0 ),使得对所有 ( n \geq n_0 ),以下不等式成立:简单地说,(\Omega(g(n))) 表示函数 ( T(n) ) 至少以 ( g(n) ) 的速率增长,不会慢于这种速率。(\Omega) 符号用于描述函数的渐近下界,表明函数的增长速率不会低于某个特定的速率。
2024-07-25 17:08:34
2291
原创 反转链表的方法
反转链表(Reversing a Linked List)是链表操作中一个比较常见且重要的问题。反转链表的原理和实现思路并不复杂,但理解其背后的思想有助于更好地掌握链表的操作以及指针操作的逻辑。反转链表的思想主要是通过逐步反转链表节点的指针方向,使链表的头节点变为尾节点,尾节点变为头节点,实现整个链表的“翻转”。
2024-07-25 15:29:39
1816
原创 git常用命令
通过使用,可以将当前分支的提交应用到指定分支的基础上。这有助于保持提交历史的清晰线性,但应谨慎使用,特别是在公共分支上进行 rebase 操作。理解和掌握 rebase 操作,是提高 Git 使用效率和代码管理能力的关键。创建补丁:使用命令生成包含提交变更的补丁文件。应用补丁:使用git apply或git am将补丁文件的更改应用到新的代码库。处理冲突:在应用补丁时如果出现冲突,需要手动解决冲突并继续应用过程。维护元数据:使用git am可以更好地保持提交历史和元数据。
2024-07-19 16:03:04
1053
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人