算法导论7.1

7.1-1 略

7.1-2

     第一个问很明显,如果元素都相同,那么记录指针随着循环都会+1直到循环结束,返回的就是r。

     第二个问就是第一个问的扩展,很明显若是元素都相同,那么循环结束时,记录指针i一定指向r-1。那么我们只要判断i+1是否与A[r]相同即可。相同则返回(p+r)/2;(若是所有元素都小于最后一个元素上述情况也成立)

7.1-3查看基本操作,n各元素比较n-1次。所以时间复杂度为O(n)

7.1-4只要把判断条件改反方向即可

猜你喜欢

转载自blog.csdn.net/demonandyu/article/details/85804675