当前位置:主页>仓库管理软件> 列表

关于 in 关键字的效率问题 找qq软件管理

进销存软件版1楼: if i in [1..250] then
想问一下,上面这语句的效率问题,这样使用效率是否太低?
它使用了 in 关键字,不知道 Delphi 判断“ i in [1..250] ”这一句的值的原理,不会是先判断 i 是否等于1,再判断是不是等于2......
如果是我想这样的话,效率就太低了。
高手们指点一下!

2楼: [1..250] 是有序的,按道理应该是用黄金分割法。 如qq软件管理

3楼: low = 1; high = ST.length; // 置区间初值

while (low <= high) {

mid = (low + high) / 2;

if (EQ (key , ST.elem[mid].key) )

return mid; // 找到待查元素

else if ( LT (key , ST.elem[mid].key) )

high = mid - 1; // 继续在前半区间进行查找

else low = mid + 1; // 继续在后半区间进行查找

}

4楼: 对于这种有序的数据,DELPHI肯定是用折半快速查询的算法,效率是最高的.

5楼: In 是位操作,快的很。这个指令Delphi编译出来不会有循环,只会有一条汇编指令。

6楼: [:O]

进销存软件版7楼: 谢谢各位!