Skip to content

drewgrubb0/SortingMetrics

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 

Repository files navigation

SortingMetrics

And this project is done! This project was very interesting for me because I learned a lot about different sorting algorithms, their implementations, and when to use them!

A couple things that stood out to me:

  • All of the quick algorithms were much faster than I anticipated on large number sequences
  • Shell sort was much faster than I expected
  • Heap sort was slower than I expected
  • Counting sort is a monster I didn't expect (but looking back on it makes sense because it's almost similar to a hashmap)

Things I want to do with this in the future:

  • Port it over to an Object Oriented Language (most likely C++) to create a cleaner main method and make it even easier to implement new algorithms.
  • Add more customizable features in said port such as running individual sorts, running specific groups, or rerunning sorts.
  • Add more things to keep track of (#Comparisons, #Swaps, Sort specific stats).
  • Possibly take advantage of Linux Perf to look even further as to specific sorting statistics

Hello There!

This is a personal project where I will be implementing a large variety of sorting algorithms in a program and measuring their execution times.

This project stems from personal curiosity as well as a desire to sharpen my algorithmic skills and knowledge of the C language. I will be deriving the source code from scratch by analyzing the algorithms step by step in an effort to retain the information.

I have no real deadline or schedule for this project, but intend to complete it in a reasonable amount of time because of the different career advantages to be had by knowing the algorithms, strengths, and weaknesses of each sort.

Simple Sorts (Will likely all be in the same file):

  • Bubble Sort
  • Insertion Sort
  • Selection Sort
  • Shell Sort
  • Cocktail Sort

Advanced Sorts (Will likely have their own files):

  • Merge Sort
  • Quick Sort
  • Heap Sort
  • Radix Sort
  • Counting Sort

My Links:

Info on System:

  • Architecture: x86_64
  • CPU op-mode(s): 32-bit, 64-bit
  • Byte Order: Little Endian
  • CPU(s): 4
  • On-line CPU(s) list: 0-3
  • Thread(s) per core: 1
  • Core(s) per socket: 4
  • Socket(s): 1
  • Vendor ID: GenuineIntel
  • CPU family: 6
  • Model: 94
  • Model name: Intel(R) Core(TM) i5-6600K CPU @ 3.50GHz
  • Stepping: 3
  • CPU MHz: 3501.000
  • CPU max MHz: 3501.0000
  • BogoMIPS: 7002.00
  • Virtualization: VT-x
  • Hypervisor vendor: vertical
  • Virtualization type: full

About

C Program that measures the execution time of various sorting algorithms on an array

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages