Types of Searching Algorithms:
1.Unordered Linear Search
2.Sorted/Ordered Linear Search
3.Binary Search
4.Symbol Tables and Hasing
5.String Searching Algorithms: Tries,Ternary Search and Suffix Trees
1. Unordered Search:
def search(A,value):
for i in range(len(A)):
if A[i] == value:
return i
return -1
Time Complexity: O(n)
Space Complexity: O(1)
2. Ordered Search:
def search(A,value):
for i in range(len(A)):
if A[i] == value:
return i
elif A[i]>value:
return -1
return -1
Time Complexity: O(n)
Space Complexity: O(1)
3. Binary Search:
def search(A,value):
low = 0
high = len(A)-1
while low<=high:
mid = (low+high)/2
if value>A[mid]:
low = mid+1
elif value<A[mid]:
high = mid-1
elif value==A[mid]:
return mid
return -1
Time Complexity: O(log n)
Space Complexity: O(1)
Implementation | Search Worst Case |
---|---|
Unordered Array | n |
Ordered Array (Binary Search) | log n |
Unordered List | n |
Ordered List | n |
Binary Search Tree | n |