# Sorting
A program written to test the time complexity of insertion, merge, and heap sort

# Author
Gregory Crawford

# Compiling
Run `make` to compile the project.
Output files get placed into test/SORTED

# Running
Run the program with chosen arguments

`bin/main.out [-f filename] [-s sort-type] [-l word]` 

# Commands

## bin/main.out [-a | -f filename | -d | ]
Ex: `bin/main.out -f test/PERM/perm15K.txt -s bst -l apple`

# Arguments

## File selection
> -a | --all
  - Runs through all the original files (perm15K.txt - perm150K.txt)
  - *EX: bin/main.out -a*
> -f path/to/file.txt | --filename path/to/file.txt
  - Runs a specific file to sort
  - *EX: bin/main.out -f perm15K.txt*
> -d | --default
  - Runs sort only on the default test file (perm15K.txt)
  - *EX: bin/main.out -d*

## Sorting type selection
> -s | --sort-type
  - Selects a sort type
  - Options:
      - binary search tree [***default***]
        - *EX: bin/main.out -s bst*
      - red-black tree
        - *EX: bin/main.out -s rbt*
      - insertion
        - *EX: bin/main.out -s insertion*
      - merge
        - *EX: bin/main.out -s merge*
      - heap
        - *EX: bin/main.out -s heap*
      - all (only runs insertion, merge, and heap sort)
        - *EX: bin/main.out -s all*

## Locating a word
> -l | --locate
  - Locates a word and prints the output [***default***]
  - Must be used with BST or RBT sort type
  - *EX: bin/main.out -l apple*
# Notes
