/* This software was developed by Bruce Hendrickson and Robert Leland *
* at Sandia National Laboratories under US Department of Energy *
* contract DE-AC04-76DP00789 and is copyrighted by Sandia Corporation. */
/* Sort a double array using Shell's method. Modified algorithm
from p. 245, Numerical Recipies (changed float to double). */
void shell_sort(n, arr)
double arr[];
int n;
{
int nn, m, j, i;
double t;
m = n;
for (nn = 1; nn <= n; nn <<= 1) {
m >>= 1;
for (j = m + 1; j <= n; j++) {
i = j - m;
t = arr[j];
while (i >= 1 && arr[i] > t) {
arr[i + m] = arr[i];
i -= m;
}
arr[i + m] = t;
}
}
}
syntax highlighted by Code2HTML, v. 0.9.1