#ifndef _SORT_H_
#define _SORT_H_
/*--------------- sort.h --------------*/
/*--------------- sort library customizable file --------------*/
/*
* This is the key TYPE.
* Replace this typedef by YOUR key type.
* e.g. if you're sorting an array of pointers to strings
* You should do:
*
* typedef char * KEY_T
*
* The keys are the items in the array that you're moving
* around using the SWAP macro.
* Note: the comparison function may compare any "function"
* of this key, it doesn't necessarily need to compare the
* key itself. example: you compare the strings pointed to
* by the key itself.
*/
/*typedef long KEY_T;*/
typedef float KEY_T;
/*
* These are the COMPARISON macros
* Replace these macros by YOUR comparison operations.
* e.g. if you are sorting an array of pointers to strings
* you should define:
*
* GT(x, y) as (strcmp((x),(y)) > 0) Greater than
* LT(x, y) as (strcmp((x),(y)) < 0) Less than
* GE(x, y) as (strcmp((x),(y)) >= 0) Greater or equal
* LE(x, y) as (strcmp((x),(y)) <= 0) Less or equal
* EQ(x, y) as (strcmp((x),(y)) == 0) Equal
* NE(x, y) as (strcmp((x),(y)) != 0) Not Equal
*/
#define GT(x, y) ((x) > (y))
#define LT(x, y) ((x) < (y))
#define GE(x, y) ((x) >= (y))
#define LE(x, y) ((x) <= (y))
#define EQ(x, y) ((x) == (y))
#define NE(x, y) ((x) != (y))
/*
* This is the SWAP macro to swap between two keys.
* Replace these macros by YOUR swap macro.
* e.g. if you are sorting an array of pointers to strings
* You can define it as:
*
* #define SWAP(x, y) temp = (x); (x) = (y); (y) = temp
*
* Bug: 'insort()' doesn't use the SWAP macro.
*/
#define SWAP(x, y) temp = (x); (x) = (y); (y) = temp
/*-------------------- End of customizable part -----------------------*/
/*-------------------- DON'T TOUCH BEYOND THIS POINT ------------------*/
void sedgesort(register KEY_T array[], register int len);
void insort(register KEY_T array[], register int len);
void partial_quickersort(register KEY_T array[], register int lower, register int upper);
void siftdown(KEY_T array[], int lower, int upper);
void af_heapsort(KEY_T array[], int len, int n);
#endif
syntax highlighted by Code2HTML, v. 0.9.1