|
wasspace:=true;
sqltext[j]:=' ';
end
else
if Memo2.Text[i]=')' then begin
|
dec(j);
sqltext[j]:=' ';
|
|
inc(j);
wasspace:=true;
sqltext[j]:=' ';
end
else
|
|
|
if (j>1) and (sqltext[j-1]=' ') then
|
if (j>1) then begin
if (sqltext[j-1]='!') then begin
sqltext[j-1]:=' ';
sqltext[j]:='<';
|
|
inc(j);
end
else begin
if (sqltext[j-1]<>'>') and (sqltext[j-1]<>'<') then begin
|
inc(j);
end;
|
inc(j);
end
|
else begin
|
inc(j);
end;
wasspace:=true;
sqltext[j]:=' ';
end
else if Memo2.Text[i]='>' then begin
if (j>1) and (sqltext[j-1]=' ') then
dec(j);
if (j>1) and (sqltext[j-1]<>'<') then begin
sqltext[j]:=' ';
inc(j);
end;
sqltext[j]:=Memo2.Text[i]; inc(j);
wasspace:=true;
sqltext[j]:=' ';
end
else if Memo2.Text[i]='<' then begin
if (j>1) and (sqltext[j-1]=' ') then
dec(j);
sqltext[j]:=' '; inc(j);
sqltext[j]:=Memo2.Text[i]; inc(j);
wasspace:=true;
sqltext[j]:=' ';
end
else if Memo2.Text[i]=')' then begin
if (j>1) and (sqltext[j-1]=' ') then
dec(j);
sqltext[j]:=' '; inc(j);
sqltext[j]:=Memo2.Text[i]; inc(j);
wasspace:=true;
sqltext[j]:=' ';
end
else
sqltext[j]:=UpCase(Memo2.Text[i]);
inc(j);
end; //WHILE
SetLength(sqltext,j-1);
end;
Сложность процедуры "DeleteBadCharacters" для данного варианта алгоритма составляет:
O(B)=O(1);
O(D)=O(1);O(E)=O(1);
O(F)=O(1);
O(G)=O(1); O(J)=O(1);
O(K)=O(1); O(L)=O(1);
O(N)=O(1); O(P)=O(1);
O(S)=O(1); O(T)=O(1); O(Y)=O(1);
O(X)=O(1); O(Z)=O(1);
O(W)=O(1); O(BB)=O(1); O(CC)=O(1); O(EE)=O(1);
O(GG)=O(1);
O(MM)=O(1); O(FF)=O(1);
O(AA)=O(1);
O(RR)=O(1); O(PP)=O(1);
O(YY)=O(1); O(TT)=O(1);O(ZZ)=O(1); O(WW)=O(1);
O(UU)=O(1);
O(C)=O(N)*O(D)=O(1);
O(H)=O(G)+O(J)=O(1);
O(M)=O(K)+O(L)=O(1);
O(R)=O(N)+O(P)=O(1);
O(U)=O(X)+O(Z)=O(1);
O(DD)=O(V)+O(W)+ O(BB)+O(CC) +O(EE)=O(1);
O(TTT)=O(1)*O(T)=O(1);
O(NN)=O(1)*O(MM)=O(1);
O(OO)=O(1)*O(FF)=O(1);
O(SS)=O(1)*O(RR)=O(1);
O(XX)=O(1)*O(YY)=O(1);
O(KK)=O(1)(O(TTT)+ O(Y)+ O(U)+ O(DD)+ O(GG)+ O(NN)+ O(OO)+ O(AA)+ O(SS)+ O(PP)+ O(XX)+ O(TT)+ O(ZZ))=O(1);
O(WW) = O(N*(O(F)+O(H)+O(M)+O(R)+O(S)+O(KK)+O(VV))= O(N*O(1))=O(N);
O(A)=O(B)+O(C)+O(E)+O(WW) +O(UU) = O(1)+O(N)+O(1)+O(N)=O(N)
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.