From 27170a41d9cf47a8048bccb040fdb287b8af7bcc Mon Sep 17 00:00:00 2001 From: internetlandlord Date: Wed, 19 Oct 2022 18:43:07 +0000 Subject: Added quick-sort algorithm and verified function. Updated README to reflect chosen algos --- README.md | 9 +++++++++ quick-sort.py | 45 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+) create mode 100755 quick-sort.py diff --git a/README.md b/README.md index 0e55372..98e11ab 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,15 @@ science algorithms with file manipulation (using CSV files of random numbers). The functional file contains I/O functions for ingressing and egressing data. +### Algos covered: +* Selection Sort +* Insertion Sort +* Quick Sort +* Bubble Sort +* Merge Sort + +More to come! + ###### inputout.py * Contains functions that are imported into algorithm scripts for ingressing/ exporting data to csv 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) -- cgit v1.2.3