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

说明数据已经按照从小到大的顺序排好了。

代码解释:

  1. 定义数据: set data {5 2 4 6 1 3} 定义了一个包含待排序数据的列表。
  2. 获取数据长度: set n [llength $data] 获取数据列表的长度。
  3. 冒泡排序循环: 两个嵌套循环实现冒泡排序算法。
    • 外层循环遍历所有元素,每次循环完成,最大元素会移动到列表末尾。
    • 内层循环比较相邻元素,如果顺序错误就交换它们。
  4. 交换数据: 使用 lindexlset 命令获取和设置列表元素的值,实现元素交换。
  5. 输出结果: puts $data 打印排序后的结果。
Tcl 冒泡排序实现代码示例

原文地址: https://www.cveoy.top/t/topic/nbgh 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录