1) 二分搜索折半查找计算过程? 2) 二分搜索具有较高搜索效率的主要原因是什么? 3) 二分搜索的时间复杂性函数如何刻画?如何通过主定理法推算其大Ο? 4) 快速排序算法包含哪几个主要步骤? 5) 快速排序当选择了基准元素之后如何进行子问题划分? 6) 为什么快速排序不需要子问题解合并的步骤? 7) 为什么快速排序算法只有在最好情况下,时间复杂性才有Ο(nlogn)? 8) 什么情况下,快速排序算法复杂性会达到Ο(n2)?如何改进? 9) 为什么快速排序算法只讨论平均情况下的时间复杂性?
时间: 2023-04-02 16:01:13 浏览: 154
PHP有序表查找之二分查找(折半查找)算法示例
1) 二分搜索折半查找计算过程是将有序数组分成两部分,取中间值与目标值进行比较,如果相等则返回,如果目标值小于中间值,则在左半部分继续查找,否则在右半部分继续查找,直到找到目标值或者无法继续查找为止。
2) 二分搜索具有较高搜索效率的主要原因是每次可以将搜索范围缩小一半,因此在有序数组中查找目标值的时间复杂度为O(logn)。
3) 二分搜索的时间复杂性函数为T(n)=T(n/2)+O(1),通过主定理法可以推算其大Ο为O(logn)。
4) 快速排序算法包含三个主要步骤:选取基准元素、划分子问题、递归解决子问题。
5) 快速排序当选择了基准元素之后,将数组分成两部分,一部分小于基准元素,一部分大于基准元素。
6) 快速排序不需要子问题解合并的步骤是因为子问题的解已经在递归过程中得到了合并。
7) 快速排序算法只有在最好情况下,即每次选取的基准元素都能将数组均分,时间复杂性才有Ο(nlogn)。
8) 快速排序算法复杂性会达到Ο(n2)的情况是每次选取的基准元素都是最大或最小值,可以通过随机选取基准元素或者三数取中法来改进。
9) 快速排序算法只讨论平均情况下的时间复杂性是因为最坏情况下的时间复杂性较差,但出现的概率较小,而最好情况下的时间复杂性又较优,因此平均情况下的时间复杂性更能反映算法的性能。
阅读全文