Sorting algorithms/Bogosort: Difference between revisions
Content added Content deleted
(doesn't need saying) |
(→{{header|Tcl}}: shorten code a bit) |
||
Line 800: | Line 800: | ||
proc shuffleInPlace {listName} { |
proc shuffleInPlace {listName} { |
||
upvar 1 $listName list |
upvar 1 $listName list |
||
set len [llength $list] |
set len [set len2 [llength $list]] |
||
set |
for {set i 0} {$i < $len-1} {incr i; incr len2 -1} { |
||
# Pick cell to swap with |
|||
set n [expr {int($i + $len2 * rand())}] |
set n [expr {int($i + $len2 * rand())}] |
||
# Perform swap |
|||
set temp [lindex $list $i] |
set temp [lindex $list $i] |
||
lset list $i [lindex $list $n] |
lset list $i [lindex $list $n] |