tcl 中 lsearch 的默认算法以及改进其运行时间的方法?

Dip*_*ach 2 algorithm performance search runtime tcl

我想知道tcl中的lsearch在后台使用哪种搜索算法。另外,如果列表已排序并且我们没有在 lsearch 中给出选项 -sorted,它是否仍然使用二分搜索来执行搜索。如果有任何方法可以提高 lsearch 的效率,请告诉我。

我尝试了不同的情况,但我仍然很困惑哪种方式最有效。

Col*_*eod 5

如果您没有指定-sorted它将执行线性扫描,请注意,您可以使用选项更改此操作的起点-start,请参阅https://www.tcl-lang.org/man/tcl/TclCmd/lsearch.htm# M14,也使用-sorted意味着精确匹配,而不是 glob 或正则表达式。

如果您需要在一个大集合中搜索一个值,那么使用 Tcl 数组或字典可能会更有效,因为它们使用散列来快速找到精确匹配。