算法设计与分析实践-作业3
1. 问题
- 写出两种检索算法:在一个排好序的数组T[1…n]中查找x,如果x在T中,输出x在T的下标j;如果x不在T中,输出j=0.
2. 设计
-
方法一:
直接遍历整个数组,与该数字做比对,统计它出现的次数。时间复杂度O(n)。
-
方法二:
先用二分查找找到第一个k的下标,再用二分查找找到最后一个下标,最后一个k小标减去第一个k下标并加1,就是k在数组中出现的次数。时间复杂度为O(logn)。
3. 分析
1.遍历数组查找复杂度O(n)。
2.二分查找算法复杂度O(log(n))。
4. 源码
https://github.com/Ericjin1022/-suanfa