Search This Blog

Tuesday, February 11, 2014

Search a string in list with O(logn) complexity

__author__ = 'nitin'

def string_finding_search(alist,search_string):
    first=0
    last=len(alist)-1
    while first<=last:
        while first<=last and alist[last]=='':
            last=last -1
        if last < first:
            return -1
        mid=(first + last)/2
        while alist[mid]=="":
            mid=mid+1
        result=cmp(alist[mid],search_string)
        if result==0:
            return mid
        if result<0: br="">            first=mid+1
        else:
            last=mid-1
    return False

alist=["at","",''",''","ball",''",''","car",''",''","dad",''",]
print string_finding_search(alist,'ball')

No comments:

My Profile

My photo
can be reached at 09916017317