算法第二次作业
算法第二次作业
1、首先选取数组最后一个元素作为基准,将数组划分为两部分:左部分的元素是小于基准的,右部分的元素是大于等于基准的,最后返回基准的最终位置。然后进行递归查找,先计算这个基准是当前数组第几小的元素,若刚好等于k,就返回主元;若小于k,递归查找左子数组;若大于k递归查找右子数组。直至只有一个元素,返回该元素。
2、最好时间复杂度:O(n)
最坏时间复杂度:O(n²)
3、分治算法就是把一个问题分成若干个独立的子问题,一般通过递归求其最优解,再合并子问题。这个算法可以让解决问题变得更有效率,当然也有可能遇到最坏的情况,直至最后才能找到。

浙公网安备 33010602011771号