BF算法
int index(SString S,SString T,intpos){
int i=pos,j=1;
while(i<=S[0]&&j<=T[0])
{
if(s[i]==T[j])
++i;++j;
}
else{
i=i-j+2;j=1;
}
if(j>T[0]) return i-T[0];
else return 0;
}
堆排
void HeapAdjust(HeapType &H,int s,int m){
RedType rc=H.r[s];
int j;
for(j = 2*s;j<=m;j *=2){
if(j<m&<(H.r[j].key,H.r[j+1].key)) ++j;
if(!LT(rc.key,H.r[j].key)) break;
H.r[s] = H.r[j]; s = j;
}
H.r[s] = rc;
}
void HeapSort(HeapType &H){
int i;
for(i=H.length/2;i>0;i--)
HeapAdjust(H,i,H.length);
for(i=H.length;i>1;i--)
{
int temp;
temp = H.r[1].key;
H.r[1].key = H.r[i].key;
H.r[i].key = temp;
HeapAdjust(H,1,i-1);
}
}