第二次作业

  1. 分治算法描述

从数组里挑个基准数,把数组分成三堆:比基准小的、和基准一样的、比基准大的。要是小堆长度够k,就在小堆里接着找;要是小堆加基准堆够k,基准就是答案;不然就去大堆里找,k得减去小堆加基准堆的长度。

  1. 时间复杂度分析

最好情况O(n):每次挑的基准刚好就是第k小的数,不用再递归,只花一次遍历划分的时间。最坏情况O(n²):每次都挑到最大或最小的当基准,数组每次只少一个元素,得递归n次,总时间就变成平方级了。

  1. 分治法体会与思考

分治法就是把大问题拆成几个一样类型的小问题,逐个解决再整合。关键是拆分要均匀,不然效率会差很多。它思路特别直观,能搞定大问题,但得考虑拆分和合并的成本,不能盲目用。

posted @ 2025-11-02 21:08  西瓜Õ  阅读(5)  评论(0)    收藏  举报