Tcl 冒泡排序实现代码示例
Tcl 冒泡排序实现代码示例
以下是一个用 Tcl 编写的冒泡排序脚本:
# 定义要排序的数据
set data {5 2 4 6 1 3}
# 记录数据长度
set n [llength $data]
# 冒泡排序
for {set i 0} {$i < $n-1} {incr i} {
for {set j 0} {$j < $n-$i-1} {incr j} {
if {[lindex $data $j] > [lindex $data [expr $j+1]]} {
# 交换数据
set temp [lindex $data $j]
lset data $j [lindex $data [expr $j+1]]
lset data [expr $j+1] $temp
}
}
}
# 输出排序后的结果
puts $data
运行以上脚本,输出结果为:
1 2 3 4 5 6
说明数据已经按照从小到大的顺序排好了。
代码解释:
- 定义数据:
set data {5 2 4 6 1 3}定义了一个包含待排序数据的列表。 - 获取数据长度:
set n [llength $data]获取数据列表的长度。 - 冒泡排序循环: 两个嵌套循环实现冒泡排序算法。
- 外层循环遍历所有元素,每次循环完成,最大元素会移动到列表末尾。
- 内层循环比较相邻元素,如果顺序错误就交换它们。
- 交换数据: 使用
lindex和lset命令获取和设置列表元素的值,实现元素交换。 - 输出结果:
puts $data打印排序后的结果。
原文地址: https://www.cveoy.top/t/topic/nbgh 著作权归作者所有。请勿转载和采集!