bsearch2.c

来自「自己做的常用库和实现的数据结构。public domain.」· C语言 代码 · 共 33 行

C
33
字号
#include<stdio.h>int cmp(const void *a, const void *b){	return *((int *)b) - *((int *)a);	}void *bs(const void *key, const void *base, size_t nmemb, size_t size,		int (*compar)(const void *, const void *)){	const void *low=base, *high=low+nmemb*size, *mid=low+(nmemb>>=1)*size;	int t;	while(high >= low) {		t = (*compar)(key,mid);		if(t==0)			return (void *)mid;		else if(t>0) 			low = mid+size;		else 			high = mid-size;		mid = low + size*(nmemb>>=1);	}	return NULL;}main(){	int a[10];	int i;	int *q;	for(i=0;i<10; i++)		printf("%d ",a[i]=-i);	q = (int *)bs(a+4, a, 10, sizeof(int), cmp);	printf("\nafterbsearch%d", *q);}

⌨️ 快捷键说明

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