使用任何排序技术
数组变量arr包含: arr {1 5 2 9 3 8 10 6}
不使用lsort
最后o / p在同一个数组变量中: arr {1 2 3 5 6 8 9 10}
答案 0 :(得分:0)
虽然我们不会给你答案,但我们可以提出一些有用的建议。例如,您将列表中的两个元素($idx1
和$idx2
)与此进行比较:
string compare [lindex $theList $idx1] [lindex $theList $idx2]
您可以使用此过程交换这两个元素:
proc swap {nameOfListVar idx1 idx2} {
upvar 1 $nameOfListVar theList
set tmp [lindex $theList $idx1]
lset theList $idx1 [lindex $theList $idx2]
lset theList $idx2 $tmp
return
}
您可以称之为:
# Pass the list variable *name*
swap theList $idx1 $idx2
通常,你可以这样做一个排序算法:
其他一切都是优化。 (请记住,真正的Tcl程序只使用lsort
,因为它实现了一个具有许多优良属性的高效算法,其余的不需要排序或将问题委托给数据库引擎......)