Skip to content

Instantly share code, notes, and snippets.

@gengue
Created March 16, 2017 23:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gengue/9818a01fec1f2cd843a4c555a45aea72 to your computer and use it in GitHub Desktop.
Save gengue/9818a01fec1f2cd843a4c555a45aea72 to your computer and use it in GitHub Desktop.
Performance benchmark Bubble vs Quicksort
import random
import time
def quicksort(items):
lowest = []
equal = []
greater = []
if len(items) > 0:
pivot = items[0]
for i in items:
if pivot > i:
greater.append(i)
elif pivot < i:
lowest.append(i)
else:
equal.append(i)
return quicksort(greater) + equal + quicksort(lowest)
else:
return items
def sort_bubble(items):
result = items[:]
temp = 0
for j, k in enumerate(result):
for x in range(0, len(result) - 1):
if result[x] > result[x + 1]:
temp = result[x]
result[x] = result[x + 1]
result[x + 1] = temp
return result
def main():
random_list = [random.randint(1,100) for i in range(10000)]
print('corriendo bubble')
start_time = time.time()
for i in sort_bubble(random_list):
pass
elapsed_time1 = time.time() - start_time
print('corriendo quicksort')
start_time = time.time()
for i in quicksort(random_list):
pass
elapsed_time2 = time.time() - start_time
print('elapsed time bubble: ', elapsed_time1)
print('elapsed time quicksort: ', elapsed_time2)
if __name__ == '__main__':
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment