第二章作业

  1. 算法描述
    核心思路:选一个基准q,把数组划分成两部分:左边≤q,右边≥q。设基准在划分后的位置为 p 。
    如果  p == k-1 :基准就是第k小元素,直接返回;
    如果  p > k-1 :第k小在左半区间,递归处理左半边;
    如果  p < k-1 :第k小在右半区间,递归处理右半边,此时找右半里第  k-p-1  小。
    2.最好情况:每次划分都把数组大致均分
    递推式:T(n)=T(n/2)+O(n)
    解得:T(n)=O(n)
    最坏情况:每次选的pivot都是最值(有序数组,选端点),每次划分只能分出1个元素
    递推式:T(n)=T(n-1)+O(n)
    解得:T(n)=O(n^2)
    3.对分治法的体会和思考
    分治法的核心是“分、治、合”,把规模较大的原问题,拆成若干结构相同、规模更小的子问题,求解子问题后,再合并子问题的结果得到原问题答案。分治适合可以独立拆分的问题,比如归并排序、快速选择、最近点对。优点是思路清晰,适合并行;但如果划分不均衡,会导致复杂度退化。使用分治时,划分策略非常关键,好的划分能大幅提升效率。分治体现了化繁为简的算法思维,是很多高效算法的基础。
posted @ 2026-10-12 18:10  hhrhehe  阅读(4)  评论(0)    收藏  举报