快排:Swift实现

2014-12-19
阅读 3 分钟
3.8k
将数组A[p..r]分割成子数组A[p..q-1]与A[q+1..r],满足A[p..q-1]中的元素都不大于A[q]且A[q+1..r]中的元素都不小于A[q]。(标兵q的选择后续在讨论)

分治:Swift实现

2014-12-11
阅读 4 分钟
2.8k
中心思想 Divide 分解规模较小且问题形式相同的多个子问题 Conquer 子问题继续递归后能被求解 Combine 合并解组合 栗子:求最大子数组问题的分治思想 条件与返回值 输入源:数组A[low..high] 返回:A[i..j] 要求 A[i] + A[i+1].. + A[j] = MAX 分治模式 1.尽可能的将原数组分解为规模大致相同的两个子数组(Divide),找...