有个问题我百思不得其解,望高手指教(100分)

1、FOR语句嵌套时,i值大的在内
2、FOR语句之间如果要调用函数返回值,且其值不变,应将其赋值给一个变量
3、多用WITH..DO..语句,可以提高速度
 
N:=bijiao(S1,S2);//这句我看不作用在那里
如果不是很重要,可以用内存比较加快速度
if CompareMem(@s1, @s2, sizeof(s1)) then ...
 
以我之见可以考滤
先比较头一个字符是否相等,再比较一串,也就是
内容P1
01 08 70 71 72 73 75 93
02 09 70 71 72 73 77 91
03 10 60 71 72 73 75 77
07 08 70 73 72 73 75 00
....
要比较的内容P2
01 08 20 30 33 34 35
先要查看P1是否有01
有就比较一整块01 08 70 71 72 73 75 93和01 08 20 30 33 34 35
也就是if CompareMem(@s1, @s2, sizeof(s1)) then ...
这方法可以减少对比的次数
再加上少少多线程,快啊

 
应该针对比较内容的特点处理:
如果对比字串的长度规定是定长的,程序中可以省去 length(S2); 如果s1和s2的长度不确定,应该这样:

num :=min(length(s2),length(s1)) // length()函数不在循环体中执行
while I<=num do
 

Similar threads

回复
0
查看
864
不得闲
D
回复
0
查看
920
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
顶部