2024/8/30大约 1 分钟
2024/8/11大约 1 分钟
2024/8/11小于 1 分钟
2024/8/11大约 1 分钟
2024/8/11大约 3 分钟
2024/8/9大约 1 分钟
2024/8/9大约 2 分钟
2024/8/9大约 3 分钟
2024/8/4小于 1 分钟
2024/8/4小于 1 分钟
2024/8/4小于 1 分钟
2024/8/4小于 1 分钟
2024/8/3小于 1 分钟
1. 快速排序
快排属于分治算法,分治算法都有三步:
- 分成子问题
- 递归处理子问题
- 子问题合并
主要步骤:
- 确定分界点,可以任选 a[l],a[r],a[(l + r) / 2] 其中一个作为分界点。
- 设置两个头尾指针 i, j,初始化 i = l - 1, j = r + 1 (避免发生边界问题导致死循环) ,向中间移动。每次循环都先将 i 右移和 j 左移,然后判断,如果 a[i] > a[j] 且 i < j,就交换 a[i] 和 a[j].
- 最后根据分界点分别递归左右两部分。
2024年7月1日大约 15 分钟
2024/7/21大约 3 分钟