算法第二章作业

1,先选一个基准元素(比如数组第一个元素、随机元素等)。接着划分数组,把小于基准的放左边,大于基准的放右边,基准就处于排序后的正确位置。计算基准是第几个小的数,若等于k,直接返回;若k更小,递归在左子数组找第k小的数;若k更大,递归在右子数组找第k - 基准排名小的数。

2,最好时间复杂度:O(n)。每次划分都将数组分成近似相等的两部分,递归深度为O(\log n),每一层操作时间为O(n),总体为O(n)。最坏时间复杂度:O(n2)。当数组有序且每次选第一个元素为基准时,划分极不均衡,递归深度为O(n),每一层操作时间为O(n),总体为O(n2)。

3,分治法是“分而治之”的思想,把大问题拆成小问题解决后合并。它让复杂问题变得清晰,像快速选择、归并排序都是典型应用。但划分方式很关键,比如快速选择的基准选择影响效率。学习后发现,用分治法要找准划分点,还要考虑子问题合并的效率,这样才能设计出高效算法,它也培养了我拆解问题的思维,让我在面对复杂任务时更有思路。

posted @ 2025-11-02 22:41  钟李豪  阅读(4)  评论(0)    收藏  举报