24 for (i = 1; i <
n; i++)
25 { v = array[i]; j = i;
26 while ((j > 0) && (array[j-1] > v))
27 { array[j] = array[j-1];
43 for (i = 1; i <
n; i++)
44 { e = array[i]; ke = key[e]; j = i;
45 while ((j > 0) && (key[array[j-1]] > ke))
46 { array[j] = array[j-1];
62 for (i = 1; i <
n; i++)
63 { e = array[i]; ke = key[e]; j = i;
64 while ((j > 0) && (key[array[j-1]] < ke))
65 { array[j] = array[j-1];
81 for (i = 1; i <
n; i++)
82 { e = array[i]; ke = key[i]; j = i;
83 while ((j > 0) && (key[j-1] > ke))
84 { array[j] = array[j-1];
102 l = 0;
r =
n-1; p = 2;
105 { m = l + ((
r-l) >> 1);
106 if (array[l] > array[
r])
swap(array[l], array[
r], t);
107 if (array[l] > array[m])
swap(array[l], array[m], t);
108 if (array[
r] > array[m])
swap(array[m], array[
r], t);
109 m = array[
r]; i = l-1; j =
r;
111 {
while (array[++i] < m);
112 while (array[--j] > m);
114 swap(array[i], array[j], t);
116 swap(array[i], array[
r], t);
145 l = 0;
r =
n-1; p = 2;
148 { m = l + ((
r-l) >> 1);
150 {
swap(array[l], array[
r], e);
swap(key[l], key[
r], t); }
152 {
swap(array[l], array[m], e);
swap(key[l], key[m], t); }
154 {
swap(array[m], array[
r], e);
swap(key[m], key[
r], t); }
155 m = key[
r]; i = l-1; j =
r;
157 {
while (key[++i] < m);
158 while (key[--j] > m);
160 swap(array[i], array[j], e);
swap(key[i], key[j], t);
162 swap(array[i], array[
r], e);
swap(key[i], key[
r], t);
188 PORD_INT *tmp, *count, minkey, maxkey, l, u, vk;
193 for (i = 0; i <
n; i++)
195 maxkey =
max(key[u], maxkey);
196 minkey =
min(key[u], minkey);
202 for (i = 0; i <= l; i++)
206 for (i = 0; i <
n; i++)
214 for (i = 1; i <= l; i++)
215 count[i] += count[i-1];
216 for (i =
n-1; i >= 0; i--)
218 tmp[--count[key[u]]] = u;
220 for (i = 0; i <
n; i++)
#define mymalloc(ptr, nr, type)
void insertDownIntsWithStaticFloatKeys(PORD_INT n, PORD_INT *array, FLOAT *key)
void insertUpFloatsWithIntKeys(PORD_INT n, FLOAT *array, PORD_INT *key)
void insertUpIntsWithStaticIntKeys(PORD_INT n, PORD_INT *array, PORD_INT *key)
void qsortUpInts(PORD_INT n, PORD_INT *array, PORD_INT *stack)
void qsortUpFloatsWithIntKeys(PORD_INT n, FLOAT *array, PORD_INT *key, PORD_INT *stack)
void insertUpInts(PORD_INT n, PORD_INT *array)
void distributionCounting(PORD_INT n, PORD_INT *node, PORD_INT *key)