75 lines
2.2 KiB
Python
75 lines
2.2 KiB
Python
def nest_qsort(tpl, colnum, reverse=False):
|
|
"""
|
|
Deze functie sorteert de geneste tuple zoals beschreven in de README.md
|
|
Het algoritme wat we gebruiken is quicksort, als we lineair gaan sorteren is het met een grote dataset niet te doen
|
|
"""
|
|
|
|
small = []
|
|
same = []
|
|
large = []
|
|
|
|
if len(tpl) > 1:
|
|
pivot = tpl[0][colnum]
|
|
if reverse:
|
|
for x in tpl:
|
|
if x[colnum] > pivot:
|
|
small.append(x)
|
|
elif x[colnum] == pivot:
|
|
same.append(x)
|
|
elif x[colnum] < pivot:
|
|
large.append(x)
|
|
else:
|
|
for x in tpl:
|
|
if x[colnum] < pivot:
|
|
small.append(x)
|
|
elif x[colnum] == pivot:
|
|
same.append(x)
|
|
elif x[colnum] > pivot:
|
|
large.append(x)
|
|
return nest_qsort(small, colnum, reverse) + same + nest_qsort(large, colnum, reverse)
|
|
else:
|
|
return tpl
|
|
|
|
|
|
def qsort(tpl, reverse=False):
|
|
"""
|
|
Deze functie kan een lijst of tuple met waardes sorteren
|
|
Het algoritme wat we gebruiken is quicksort, als we lineair gaan sorteren is het met een grote dataset niet te doen
|
|
"""
|
|
|
|
small = []
|
|
same = []
|
|
large = []
|
|
|
|
if len(tpl) > 1:
|
|
pivot = tpl[0]
|
|
if reverse:
|
|
for x in tpl:
|
|
if x > pivot:
|
|
small.append(x)
|
|
elif x == pivot:
|
|
same.append(x)
|
|
elif x < pivot:
|
|
large.append(x)
|
|
else:
|
|
for x in tpl:
|
|
if x < pivot:
|
|
small.append(x)
|
|
elif x == pivot:
|
|
same.append(x)
|
|
elif x > pivot:
|
|
large.append(x)
|
|
return qsort(small, reverse) + same + qsort(large, reverse)
|
|
else:
|
|
return tpl
|
|
|
|
|
|
def nest_search(lst, word):
|
|
found = [] # lege lijst
|
|
|
|
for x in lst: # voor elke nest in de lijst
|
|
if word.lower() in x[1].lower(): # als de keywordt overkomt met de naam van de app
|
|
found.append(x) # app nest opslaan in found
|
|
|
|
return found # return de lijst
|