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

📄 bsearch.c

📁 操作系统SunOS 4.1.3版本的源码
💻 C
字号:
#if !defined(lint) && defined(SCCSIDS)static	char sccsid[] = "@(#)bsearch.c 1.1 92/07/30 SMI"; /* from S5R2 1.5 */#endif/*LINTLIBRARY*//* * Binary search algorithm, generalized from Knuth (6.2.1) Algorithm B. * */typedef char *POINTER;POINTERbsearch(key, base, nel, width, compar)POINTER	key;			/* Key to be located */POINTER	base;			/* Beginning of table */unsigned nel;			/* Number of elements in the table */unsigned width;			/* Width of an element (bytes) */int	(*compar)();		/* Comparison function */{	int two_width = width + width;	POINTER last = base + width * (nel - 1); /* Last element in table */	while (last >= base) {		register POINTER p = base + width * ((last - base)/two_width);		register int res = (*compar)(key, p);		if (res == 0)			return (p);	/* Key found */		if (res < 0)			last = p - width;		else			base = p + width;	}	return ((POINTER) 0);		/* Key not found */}

⌨️ 快捷键说明

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