NAME
int_sort - Sorts an array of arbitrary elements by integer key.
SYNOPSIS
#include "l/l_sort.h"
Example compile flags (system dependent):
-DLINUX_X86_64 -DLINUX_X86_64_OPTERON -DGNU_COMPILER
-I/home/kobus/include
-L/home/kobus/misc/load/linux_x86_64_opteron -L/usr/lib/x86_64-linux-gnu
-lKJB -lfftw3 -lgsl -lgslcblas -ljpeg -lSVM -lstdc++ -lpthread -lSLATEC -lg2c -lacml -lacml_mv -lblas -lg2c -lncursesw
int int_sort
(
void *array,
int num_elements,
size_t element_size,
size_t key_pos,
int interrupt_action
);
DESCRIPTION
This routine is much like kjb_sort except the call backs are avoided on the
assumption that the key is an integer at offset key_pos (see offsetof()).
This routine is barely legal ANSI-C and might fail on some bizzare system
(but not anything common). The operation in question is whether:
(int*)((void*)((char*)array + element_size*n + key_pos))
evaluates to a valid pointer to the n'th integer key, where key_pos is
offsetof() the integer key, and element_size is sizeof(<element-type>). (I
don't know of any systems where this is not the case). This routine is only
meant to provide a faster sort in this specialized case, so if you don't
want to take a chance with the above then kjb_sort or qsort can be used.
The interupt handling is the same as kjb_sort (see kjb_sort(3)).
RETURNS
This function returns ERROR or NO_ERROR depending upon success.
In addition, if USE_SORT_ATN_HANDLING is used, and the sort was
interrupted, INTERRUPTED is returned.
This function previously returned the number calls to the
comparison required but this is probably too confusing now that we have
changed kjb_sort() to not do this. If needed, the number of comparisons
is available using the function get_last_sort_comparison_count().
DISCLAIMER
This software is not adequatedly tested. It is recomended that
results are checked independantly where appropriate.
AUTHOR
Kobus Barnard
DOCUMENTER
Kobus Barnard
SEE ALSO
kjb_sort
,
check_sort
,
long_sort
,
binary_search
,
int_binary_search
,
long_binary_search
,
binary_search_int_array
,
binary_search_long_array
,
linear_search
,
int_linear_search
,
long_linear_search
,
linear_search_int_array
,
linear_search_long_array