diff options
author | internetlandlord <f.fredhenry@gmail.com> | 2022-10-19 18:43:07 +0000 |
---|---|---|
committer | internetlandlord <f.fredhenry@gmail.com> | 2022-10-19 18:43:07 +0000 |
commit | 27170a41d9cf47a8048bccb040fdb287b8af7bcc (patch) | |
tree | acadc79d5497dfa37e2b58e20835811c02462917 /quick-sort.py | |
parent | ab1b6c681ff8f0e4a468bec4d35caff75f9a44b3 (diff) |
Added quick-sort algorithm and verified function. Updated README to reflect chosen algos
Diffstat (limited to 'quick-sort.py')
-rwxr-xr-x | quick-sort.py | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/quick-sort.py b/quick-sort.py new file mode 100755 index 0000000..966d550 --- /dev/null +++ b/quick-sort.py @@ -0,0 +1,45 @@ +#!/bin/python3 + +# ---------- title + + + +# ---------- Imported modules +import inputoutput as io +import csv +import sys + + +# ---------- Main +target = sys.argv[1] + +# ingress of data +numdata = io.ingressCSV(target) + +# quick sort algorithm, defined as a function (to be called recursively) +def quickSort(data): + if(len(data)>1): + pivot = int(len(data)/2) + vcomp = data[pivot] + + leftmost = [i for i in data if i < vcomp] + middie = [i for i in data if i == vcomp] + ritemost = [i for i in data if i > vcomp] + + # recursively calling the quickSort function + recursor = quickSort(leftmost) + middie + quickSort(ritemost) + return recursor + else: + return data + +# running quicksort against the ingressed data +numdata = quickSort(numdata) + +#FIXME: try using a separate list initialization if problems encountered +#writedata = quiskSort(numdata) +#io.egressCSV(writedata,target) + + +# finishing up +print("Sort complete, writing to file!") +io.egressCSV(numdata,target) |