⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qsort.c,v

📁 用TCPIP进行网际互联源码
💻 C,V
字号:
head	1.1;access;symbols;locks	dls:1.1; strict;comment	@ * @;1.1date	97.09.21.19.27.40;	author dls;	state Dist;branches;next	;desc@@1.1log@pre-3e code@text@static int	(*qscmp)();static int	qses, qs1(), qsexc(), qstexc();qsort(a, n, es, fc)char *a;unsigned n;int es;int (*fc)();{	qscmp = fc;	qses = es;	qs1(a, a+n*es);}static qs1(a, l)char *a, *l;{	register char *i, *j;	register es;	char **k;	char *lp, *hp;	int c;	unsigned n;	es = qses;start:	if((n=l-a) <= es)		return;	n = es * (n / (2*es));	hp = lp = a+n;	i = a;	j = l-es;	for(;;) {		if(i < lp) {			if((c = (*qscmp)(i, lp)) == 0) {				qsexc(i, lp -= es);				continue;			}			if(c < 0) {				i += es;				continue;			}		}loop:		if(j > hp) {			if((c = (*qscmp)(hp, j)) == 0) {				qsexc(hp += es, j);				goto loop;			}			if(c > 0) {				if(i == lp) {					qstexc(i, hp += es, j);					i = lp += es;					goto loop;				}				qsexc(i, j);				j -= es;				i += es;				continue;			}			j -= es;			goto loop;		}		if(i == lp) {			if(lp-a >= l-hp) {				qs1(hp+es, l);				l = lp;			} else {				qs1(a, lp);				a = hp+es;			}			goto start;		}		qstexc(j, lp -= es, i);		j = hp -= es;	}}static qsexc(i, j)char *i, *j;{	register char *ri, *rj, c;	int n;	n = qses;	ri = i;	rj = j;	do {		c = *ri;		*ri++ = *rj;		*rj++ = c;	} while(--n);}static qstexc(i, j, k)char *i, *j, *k;{	register char *ri, *rj, *rk;	int c;	int n;	n = qses;	ri = i;	rj = j;	rk = k;	do {		c = *ri;		*ri++ = *rk;		*rk++ = *rj;		*rj++ = c;	} while(--n);}@

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -