算法第二章作业

1.从数组中选一个数作为基准值,然后将数组分为两部分,左半部分小于基准值,右半部分大于基准值,然后递归,如果基准值是第k小的位置,直接返回基准值,如果基准值的位置大于k,递归左半部分找,如果基准值的位置小于k,递归右半部分找。
2.最好时间复杂度:O(n),每次选到的值都能将数组分为差不多相等的两部分。
最坏时间复杂度:O(n²),每次划分都不均匀。
3.分治法通过将复杂问题分解为规模更小的子问题,递归解决子问题后合并结果,从而高效解决原问题,但是如果子问题划分方法不好会导致效率降低,使用时应该认真思考,找出合理的拆分方式,才能用好分治法。

posted @ 2025-10-31 19:52  1iZ  阅读(7)  评论(0)    收藏  举报