Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from time import time
- from random import randint
- def generateOrderedList(numberOfElements):
- elements = []
- for i in range(0,numberOfElements):
- elements.append(i)
- return elements
- def generateRandomList(numberOfElements):
- elements = []
- for i in range(0,numberOfElements):
- value = randint(1,40)
- elements.append(value)
- return elements
- def getItem():
- return input('Enter Item to search for: ')
- def binarySearch(elements,searchTerm):
- lower = 0
- upper = len(elements)
- while lower <= upper:
- middle = calculateMiddle(lower,upper)
- if elements[middle] > searchTerm:
- upper = middle -1
- elif elements[middle] < searchTerm:
- lower = middle + 1
- else:
- return middle
- return -1
- def linearSearch(elements,searchTerm):
- #loop through list until found or end of list is reached
- pos = 0
- while pos < len(elements):
- if elements[pos] == searchTerm:
- return pos
- pos +=1
- return -1
- def calculateMiddle(lower,upper):
- #calculate the middle value between the upper and lower limits of the current sublist
- return int((upper + lower) / 2)
- elements = generateOrderedList(10000000)
- searchTerm = float(getItem())
- startTime = time()
- print('-----')
- print('Binary Search')
- location = binarySearch(elements,searchTerm)
- print("Found:" + str(float(time() - startTime)))
- startTime = time()
- print('-----')
- print('Linear Search')
- location = linearSearch(elements,searchTerm)
- print("Found:" + str(float(time() - startTime)))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement