可以使用哪种排序算法来获得具有给定字符串的更接近和近似的匹配列表 输入:
答案 0 :(得分:5)
我对你想做的事情的理解如下:
衡量两个字符串的接近程度的一种方法是edit or Levevshtein distance。 TCL wiki上有一个页面,它提供TCL implementaion of this algorithm。然后你可以做的是创建一个列表列表,其中每个子列表包含候选字符串及其与搜索字符串的距离。下面的代码显示了如何使用lsort命令对此列表进行排序:
set myList [list {AADD 3} {AABC 2} {AAAB 1} {DCBA 4}]
puts $myList
set sortedList [lsort -integer -index 1 $myList]
puts $sortedList
这导致以下输出:
{AADD 3} {AABC 2} {AAAB 1} {DCBA 4}
{AAAB 1} {AABC 2} {AADD 3} {DCBA 4}
这是你所追求的那种或我误解了你想要做的事情吗?