第二章作业

1.选取当前子数组中的一个基准元素,将数组划分为两部分,左侧元素都不大于基准,右侧元素都不小于基准,得到基准所在位置;计算基准是当前子区间内第几小的元素,如果恰好是第 k 小就直接返回该基准;如果 k 小于基准在当前区间的位次,则递归在左半区间继续寻找第 k 小;如果 k 大于该位次,则舍弃左侧所有元素,递归在右半区间寻找第 k 减去左侧元素个数的数,全程不需要对整个数组完整排序。
2.最好时间复杂度:O(n) 最坏时间复杂度:O(n^2)
3.分治法的核心是分而治之,将大问题拆成结构相同、规模更小的独立子问题,求解子问题后合并得到原问题解。思考:分治本质是一种缩小问题规模的思维。遇到复杂问题,不要直接硬算,尝试拆解。但拆分策略非常关键,拆分是否均衡直接影响算法性能。同时要分清,不是所有问题都适合分治。

posted @ 2026-10-12 21:13  WynneWu  阅读(11)  评论(0)    收藏  举报