binsearch.c

来自「Data Structure Ebook」· C语言 代码 · 共 33 行

C
33
字号
static void *bin_search( collection c, int low, int high, void *key ) {	int mid, cmp;	/* Termination check */	if (low > high) return NULL;	mid = (high+low)/2;	cmp = memcmp(key,ItemKey(c->items[mid]),c->size);	if ( cmp == 0 ) 		/* Match, return item found */		return c->items[mid];	else		if ( cmp < 0 )			/* key is less than mid, search lower half */			return bin_search( c, low, mid-1, key);		else				/* key is greater than mid, search upper half */			return bin_search( c, mid+1, high, key );	}void *FindInCollection( collection c, void *key )/* Find an item in a collection   Pre-condition: 	c is a collection created by ConsCollection	c is sorted in ascending order of the key	key != NULL   Post-condition: returns an item identified by key if   one exists, otherwise returns NULL*/	{	int low, high;	low = 0; high = c->item_cnt-1;	return bin_search( c, low, high, key );	}

⌨️ 快捷键说明

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