Initial data commit

This commit is contained in:
Ingy döt Net 2023-07-01 11:58:00 -04:00
parent 72d218235f
commit f23f22d71c
199087 changed files with 3378941 additions and 0 deletions

View file

@ -0,0 +1,34 @@
package require Tcl 8.6
proc patienceSort {items} {
# Make the piles
set piles {}
foreach item $items {
set p [lsearch -bisect -index end $piles $item]
if {$p == -1} {
lappend piles [list $item]
} else {
lset piles $p end+1 $item
}
}
# Merge the piles; no suitable builtin, alas
set indices [lrepeat [llength $piles] 0]
set result {}
while 1 {
set j 0
foreach pile $piles i $indices {
set val [lindex $pile $i]
if {$i < [llength $pile] && (![info exist min] || $min > $val)} {
set k $j
set next [incr i]
set min $val
}
incr j
}
if {![info exist min]} break
lappend result $min
unset min
lset indices $k $next
}
return $result
}

View file

@ -0,0 +1 @@
puts [patienceSort {4 65 2 -31 0 99 83 782 1}]