Data update
This commit is contained in:
parent
4bb20c9b71
commit
cbaf4c4b64
12390 changed files with 318560 additions and 27248 deletions
|
|
@ -0,0 +1,44 @@
|
|||
local fmt = require "fmt"
|
||||
|
||||
local function patience_sort(a)
|
||||
local size = #a
|
||||
if size < 2 then return end
|
||||
local piles = {}
|
||||
for a as e do
|
||||
local outer = false
|
||||
for piles as pile do
|
||||
if pile:back() > e then
|
||||
pile:insert(e)
|
||||
outer = true
|
||||
break
|
||||
end
|
||||
end
|
||||
if !outer then piles:insert({e}) end
|
||||
end
|
||||
for i = 1, size do
|
||||
local min = piles[1]:back()
|
||||
local min_pile_index = 1
|
||||
for j = 2, #piles do
|
||||
if piles[j]:back() < min then
|
||||
min = piles[j]:back()
|
||||
min_pile_index = j
|
||||
end
|
||||
end
|
||||
a[i] = min
|
||||
local min_pile = piles[min_pile_index]
|
||||
min_pile:remove()
|
||||
if #min_pile == 0 then piles:remove(min_pile_index) end
|
||||
end
|
||||
end
|
||||
|
||||
local ia = {4, 65, 2, -31, 0, 99, 83, 782, 1}
|
||||
patience_sort(ia)
|
||||
fmt.lprint(ia)
|
||||
|
||||
local ca = {"n", "o", "n", "z", "e", "r", "o", "s", "u", "m"}
|
||||
patience_sort(ca)
|
||||
fmt.lprint(ca)
|
||||
|
||||
local sa = {"dog", "cow", "cat", "ape", "ant", "man", "pig", "ass", "gnu"}
|
||||
patience_sort(sa)
|
||||
fmt.lprint(sa)
|
||||
Loading…
Add table
Add a link
Reference in a new issue