Join GitHub today
GitHub is home to over 20 million developers working together to host and review code, manage projects, and build software together.
C D R Eiffel
Fetching latest commit…
Cannot retrieve the latest commit at this time.
|Failed to load latest commit information.|
This repository contains three implementations of the Quick Sort algorithm, meant to be compared for their running speeds on various input sizes and types. The first implementation, in textbook.c, is the simplest and most commonly found on textbooks. The second, in insertion.c, uses insertion sort for small arrays. The third, in network.c, uses sorting networks for small arrays. All three implementations are designed to sort integers and use the same simple partitioning algorithm, which can be found in partition.c. In order to run the tests, just compile: $ make And then run the desired test specifying type and size of input: $ ./network a 1024 The available types of input are: (a)scending - an already sorted array of integers; (d)escending - an array of integers sorted in reverse; (e)quals - an array of zeroes; (r)andom - an array of random integers. The results/ directory contains the raw data for my test results. Its two subdirectories correspond to the compiler optimization flags used for the code on each run, -O1 and -O2. Inside each of these you will find several files, each of the form <sorting-method>.<input-size>.<input-type> containing the times for the five runs I averaged in my tests. For more information, please see: http://guilherme-pg.com/2011/09/02/Fun-with-sorting-networks.html http://guilherme-pg.com/2012/03/27/Sorting-networks-revisited.html