/Task/Sorting-algorithms-Bubble-sort/Tcl/sorting-algorithms-bubble-sort.tcl

https://github.com/acmeism/RosettaCodeData · TCL · 21 lines · 19 code · 2 blank · 0 comment · 3 complexity · 3b26d2b67c0951707e7d276c4231dbbd MD5 · raw file

  1. package require Tcl 8.5
  2. package require struct::list
  3. proc bubblesort {A} {
  4. set len [llength $A]
  5. set swapped true
  6. while {$swapped} {
  7. set swapped false
  8. for {set i 0} {$i < $len - 1} {incr i} {
  9. set j [expr {$i + 1}]
  10. if {[lindex $A $i] > [lindex $A $j]} {
  11. struct::list swap A $i $j
  12. set swapped true
  13. }
  14. }
  15. incr len -1
  16. }
  17. return $A
  18. }
  19. puts [bubblesort {8 6 4 2 1 3 5 7 9}] ;# => 1 2 3 4 5 6 7 8 9