主题:求散列查找源程序!!
zhaoren
[专家分:420] 发布于 2007-10-07 19:50:00
如题
回复列表 (共3个回复)
沙发
angwuy [专家分:2280] 发布于 2007-10-08 20:30:00
说得详细些
板凳
abcwuhang [专家分:1840] 发布于 2007-10-14 14:00:00
先qsort
3 楼
shisutianxia [专家分:630] 发布于 2007-10-20 13:22:00
看看下面这个我的(大家互相帮助)
program dnasert;
var p,s:string;i,lp,ls,lx,ll,x:integer;
rec,l:array[1..1000] of integer;
function panduan(n:integer):boolean;
var i:integer;q:boolean;
begin
q:=true;
for i:=1 to n do
if p[i]<>p[n-i+1] then begin
q:=false;break;
end;
panduan:=q;
end;
begin
readln(s);
readln(p);
ls:=length(s);
lp:=length(p);
fillchar(l,sizeof(l),0);
l[1]:=1;
for i:=2 to lp do
begin
l[i]:=l[i-1];
if panduan(i) then l[i]:=i mod 2;
end;
i:=0;x:=0;
while(i<=ls-lp)do
begin
ll:=0;
repeat
inc(ll);
until((ll=lp)or (s[i+ll]<>p[ll]));
if ll=lp then begin inc(x);rec[x]:=i;i:=i+1;end
else i:=i+l[ll];
end;
write('totoal=',x);
for i:=1 to x do
write(rec[i],'**');
end.
我来回复