45 lines
799 B
Scilab
45 lines
799 B
Scilab
|
function [x]=bseastr(s1,s2)
|
||
|
x=[];
|
||
|
// Copyright (C) 2001 Michel Juillard
|
||
|
//
|
||
|
|
||
|
m = size(s1,1);
|
||
|
x = zeros(m,1);
|
||
|
|
||
|
//!! Unknown function deblank ,the original calling sequence is used
|
||
|
s1 = convstr(deblank(s1),'u');
|
||
|
|
||
|
//!! Unknown function deblank ,the original calling sequence is used
|
||
|
s2 = convstr(deblank(s2),'u');
|
||
|
|
||
|
for im = 1:m
|
||
|
key = part(s1(im),:);
|
||
|
h = size(s2,1);
|
||
|
l = 1;
|
||
|
while l<=h then
|
||
|
mid = round((h+l)/2);
|
||
|
temp = part(s2(mid),:);
|
||
|
if ~(key==temp) then
|
||
|
for i = 1:min(length(key),length(temp))
|
||
|
if part(temp,i)>part(key,i) then
|
||
|
h = mid-1;
|
||
|
break
|
||
|
;
|
||
|
|
||
|
else
|
||
|
l = mid+1;
|
||
|
break
|
||
|
;
|
||
|
|
||
|
end
|
||
|
end
|
||
|
else
|
||
|
x(im) = mid
|
||
|
break
|
||
|
;
|
||
|
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|