Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,24 @@
|
|||
use AppleScript version "2.3.1" -- OS X 10.9 (Mavericks) or later.
|
||||
use sorter : script ¬
|
||||
"Custom Iterative Ternary Merge Sort" --<www.macscripter.net/t/timsort-and-nigsort/71383/3>
|
||||
|
||||
on DutchNationalFlagProblem(numberOfBalls)
|
||||
script o
|
||||
property colours : {"red", "white", "blue"}
|
||||
property balls : {}
|
||||
|
||||
-- Custom comparison handler for the sort.
|
||||
on isGreater(a, b)
|
||||
return ((a ≠ b) and ((a is "blue") or (b is "red")))
|
||||
end isGreater
|
||||
end script
|
||||
|
||||
repeat numberOfBalls times
|
||||
set end of o's balls to some item of o's colours
|
||||
end repeat
|
||||
tell sorter to sort(o's balls, 1, numberOfBalls, {comparer:o})
|
||||
|
||||
return o's balls
|
||||
end DutchNationalFlagProblem
|
||||
|
||||
DutchNationalFlagProblem(100)
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
on threeWayPartition(theList, order) -- Dijkstra's algorithm.
|
||||
script o
|
||||
property lst : theList
|
||||
end script
|
||||
|
||||
set {v1, v2, v3} to order
|
||||
set {i, j, k} to {1, 1, (count o's lst)}
|
||||
repeat until (j > k)
|
||||
set this to o's lst's item j
|
||||
if (this = v3) then
|
||||
set o's lst's item j to o's lst's item k
|
||||
set o's lst's item k to this
|
||||
set k to k - 1
|
||||
else
|
||||
if (this = v1) then
|
||||
set o's lst's item j to o's lst's item i
|
||||
set o's lst's item i to this
|
||||
set i to i + 1
|
||||
end if
|
||||
set j to j + 1
|
||||
end if
|
||||
end repeat
|
||||
|
||||
return -- Input list sorted in place.
|
||||
end threeWayPartition
|
||||
|
||||
on DutchNationalFlagProblem(numberOfBalls)
|
||||
script o
|
||||
property balls : {}
|
||||
end script
|
||||
|
||||
set colours to {"red", "white", "blue"}
|
||||
repeat numberOfBalls times
|
||||
set end of o's balls to some item of colours
|
||||
end repeat
|
||||
threeWayPartition(o's balls, colours)
|
||||
|
||||
return o's balls
|
||||
end DutchNationalFlagProblem
|
||||
|
||||
DutchNationalFlagProblem(100)
|
||||
Loading…
Add table
Add a link
Reference in a new issue