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 len2 $len
for {set i 0} {$i < $len-1} {incr i; incr len2 -1} {
for {set i 0} {$i < $len-1} {incr i} {
# Pick cell to swap with
set n [expr {int($i + $len2 * rand())}]
set n [expr {int($i + $len2 * rand())}]
incr len2 -1
# Perform swap
set temp [lindex $list $i]
set temp [lindex $list $i]
lset list $i [lindex $list $n]
lset list $i [lindex $list $n]