This commit is contained in:
seta75D
2021-10-11 18:37:13 -03:00
commit ff309bfe1c
14130 changed files with 3180272 additions and 0 deletions

31
usr.bin/refer/shell.c Normal file
View File

@@ -0,0 +1,31 @@
#ifndef lint
static char sccsid[] = "@(#)shell.c 1.1 94/10/31 SMI"; /* from UCB 4.1 5/6/83 */
#endif
/*
* SORTS UP.
* IF THERE ARE NO EXCHANGES (IEX=0) ON A SWEEP
* THE COMPARISON GAP (IGAP) IS HALVED FOR THE NEXT SWEEP
*/
shell (n, comp, exch)
int (*comp)(), (*exch)();
{
int igap, iplusg, iex, i, imax;
igap=n;
while (igap > 1)
{
igap /= 2;
imax = n-igap;
do
{
iex=0;
for(i=0; i<imax; i++)
{
iplusg = i + igap;
if ((*comp) (i, iplusg) ) continue;
(*exch) (i, iplusg);
iex=1;
}
}
while (iex>0);
}
}