A collection of sorting functions written in ANSI C

Source code is in the seqsrt directory for sorting functions. There is a seqmrg directory for merging functions but these are embedded into specific seqsrt code (eg mergesort related.) There are three .h files with prototypes that have suffix names gssrt.h, dssrt.h and issrt.h The complete files names are aggssrt.h, agdssrt.h and agissrt.h. The first character is g to denote generic sorting (compare-based), or d to denote arbitrary data support (int, float, or double is possible but not tested), or i to denote 32-bit integer specific. Thus g functions incur the overhead of a compare function call whereas the d and i functions do not as they use <, >, etc.

Compared to prior work the default testing input have been changed. Function rand_r() is being used instead of rand(). The initial seed is fed through rand() though other alternatives are possible eg through srand.

There is a variety of insertion sort implementation using for-while or for-for structures. Quicksort implementations are recursive or not and some of them include inline insertion sort. Thoroughly test them before you use them!

A Repository directory contains prior generation functions or other functions not available in seqsrt. It is possible that some of those Repository functions are buggy or do not work at all. Ignore them or test them but verify them before you use them.

Drivers for testing them are available in the form of gmain.c, dmain.c, imain.c. The main source code allows us to select or deselect functions (by turning a zero into a one or the other way around). The executable files of interest are sgsrt, sdsrt and sisrt respecitvely.

  1. 21ssmV14.tar It creates a directory 21ssm and then populates it with files (including directories). Start by reading 21ssm.txt. The makefile to use is Makefile.sm for building executables. Makefile.ssm is just to create tar files.

Last Update: Aug 31, 2021 @ 15:10