六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 23|回复: 0

C语言的线性搜索

[复制链接]

升级  25.33%

26

主题

26

主题

26

主题

秀才

Rank: 2

积分
88
 楼主| 发表于 2013-1-26 12:29:08 | 显示全部楼层 |阅读模式
#include <stdio.h>#include <string.h>//#define PF printfint main() {    int intcmp(void *ip1, void * ip2);    void * lsearch(void *key, void *base, int n, int elemSize, int(* cmpfun)(void *, void *));    int arr[] = {4, 6, 2, 3, 11, 22, 15};    int n = sizeof(arr) / sizeof(int);    int key = 11;    int *found = lsearch(&key, &arr, n, sizeof(int), intcmp);    printf("found=%p (%d)", found, *(int *) found);    return 0;}int intcmp(void *ip1, void * ip2) {    int *p1 = ip1, *p2 = ip2;    return *p1 - *p2;}void * lsearch(void *key, void *base, int n, int elemSize, int(* cmpfun)(void *, void *)) {    int i;    for(i = 0; i < n; i ++) {        void *elemArr = (char *)base + i * elemSize;        if(cmpfun(key, elemArr) == 0)            return elemArr;    }    return NULL;}
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表