Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def quickSort(listToSort):
- """Sorts listToSort using the QuickSort algorithm - technically broken"""
- pivot = listToSort[len(listToSort)//2]
- lowerList = []
- higherList = []
- for i in range(len(listToSort[1:])):
- if listToSort[i] <= pivot:
- lowerList.append(listToSort[i])
- elif listToSort[i] > pivot:
- higherList.append(listToSort[i])
- #if all values equal each other, make checkValues false
- checkValuesLower = not all(x == lowerList[0] for x in lowerList)
- checkValuesHigher = not all(x == higherList[0] for x in higherList)
- if len(lowerList) > 1 and checkValuesLower:
- sortedLowerList = quickSort(lowerList)
- else:
- sortedLowerList = lowerList
- if len(higherList) > 1 and checkValuesHigher:
- sortedHigherList = quickSort(higherList)
- else:
- sortedHigherList = higherList
- return(sortedLowerList+[pivot]+sortedHigherList)
- def quickSort2(listToSort):
- pivot = listToSort[0]
- lowerList = []
- higherList = []
- for i in listToSort[1:]:
- if i > pivot:
- higherList.append(i)
- elif i <= pivot:
- lowerList.append(i)
- checkValuesLower = not all(x == lowerList[0] for x in lowerList)
- checkValuesHigher = not all(x == higherList[0] for x in higherList)
- if len(lowerList) > 1 and checkValuesLower:
- lowerList = quickSort2(lowerList)
- if len(higherList) > 1 and checkValuesHigher:
- higherList = quickSort2(higherList)
- return(lowerList+[pivot]+higherList)
Advertisement
Add Comment
Please, Sign In to add comment