索引顺序查找算法

来源:百度知道 编辑:UC知道 时间:2024/07/04 12:41:58
要实现的功能
(1) 要求能自动建立索引表;
(2) 对任意待查找的关键字,若查找成功,给出其关键字比较次数。
先给100分 完成的再给100分
楼下那个是没什么用的 我早看过了 会写的来吧
那些百度一下能出来的东西就别发出来 我不是傻子
还有 我要的是算法 不懂的别乱写 OK?

参考代码,不一定正确。
#include <malloc.h>
#include <stdio.h>
#include <time.h>
#include <math.h>
#include <stdlib.h>
#include <memory.h>

struct element
{
long key;
long data;
};

struct index
{
long address;
long maxkey;
};

struct index *creatidxtable(struct element *elems, long elen, long *tlen, long *plen)
{
struct index *itable;
long i, step, len;
len = (long)sqrt(elen);
*plen = len;
step = len;
len = (len * len == elen ? len : len + 1);
*tlen = len;
itable = (struct index *)malloc(sizeof(struct index) * len);

for (i = 0; i < len; ++i)
{
itable[i].address = i;

if (i < len - 1)
itable[i].maxkey = elems[ i * step + *plen - 1].key;
else
itable[i].maxkey = elems[elen - 1].key;
}

return itable;
}

long sea