Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from random import randint
- from random import sample
- from time import time
- def generateRandomList(numberOfElements):
- elements = []
- for i in range(0,numberOfElements):
- value = randint(1,100)
- elements.append(value)
- return elements
- def generateRandomAlphabet():
- letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
- elements = sample(letters,26)
- return elements
- def bubbleSort(elements):
- print('Bubble Sort')
- start = time()
- swapped = True
- n = len(elements) - 1
- while swapped:
- swapped = False
- for i in range(n):
- if elements[i] > elements[i+1]:
- #elements[i], elements[i+1] = elements[i+1],elements[i]
- elements.insert(i+1,elements.pop(i))
- swapped = True
- n -= 1
- print(str(time() - start))
- return elements
- def insertionSort(elements):
- print('Insertion Sort')
- start = time()
- #Loop through items
- for item in range(1,len(elements)):
- #get the item to be moved into a sorted postion
- marker = item - 1
- key = elements[item]
- #Loop through sorted items until the correct sorted position is found
- #Or the start of the sorted list is reached
- while elements[marker] > key and marker >= 0:
- elements[marker + 1] = elements[marker]
- elements[marker] = key
- marker -= 1
- #print(elements)
- print(str(time() - start))
- return elements
- def mergeLists(lista,listb):
- listc = []
- #loop through lists and add smalledt element to sorted list until one is empty
- while lista != [] and listb != []:
- if lista[0] <= listb[0]:
- listc.append(lista.pop(0))
- else:
- listc.append(listb.pop(0))
- if len(lista) >= 1:
- listc += lista
- else:
- listc += listb
- return listc
- def mergeSort(listc):
- if len(listc) <= 1:
- return listc
- else:
- middle = int(len(listc)/2)
- lista = mergeSort(listc[:middle])
- listb = mergeSort(listc[middle:])
- #print(middle,lista,listb)
- return mergeLists(lista,listb)
- def generateOrderedList(x):
- elements = list(range(1,x))
- return elements
- #elements = generateOrderedList(10000)
- elements = generateRandomList(5000)
- #elements = generateRandomAlphabet()
- bubbleSorted = bubbleSort(elements[:])
- #print('Bubble List: {}'.format(bubbleSorted))
- insertionSorted = insertionSort(elements[:])
- #print('Insert List : {}'.format(insertionSorted))
- print("Merge Sort")
- start = time()
- mergeSorted = mergeSort(elements[:])
- print(str(time() - start))
- print("Tim Sort")
- start = time()
- a = sorted(elements[:])
- print(str(time() - start))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement