# strats for picking pivot:
#     sample 10 and average
#     pick at random

# bubble sort more efficient if list is naerly sorted
# based on hardware, memory efficiency, parrelization you choose the most efficient algorithm

# python has world class sorting algorithm - tim sort
# performs heuristics on the list to determine what algorithm to use (nearly sorted, data type)
# it only does this if the list is big enough to the effort to be worth it
# dynamically sorted data structures - sorting while adding new data
# binary search - if data is sorted it's easier to search through