all tasks
This commit is contained in:
parent
b83f433714
commit
68f8f3e56b
14735 changed files with 178959 additions and 0 deletions
|
|
@ -0,0 +1,13 @@
|
|||
import Data.List
|
||||
import Control.Arrow
|
||||
import Control.Monad
|
||||
|
||||
flgInsert x xs = ((x:xs==) &&& id)$ insert x xs
|
||||
|
||||
gapSwapping k = (and *** concat. transpose). unzip
|
||||
. map (foldr (\x (b,xs) -> first (b &&)$ flgInsert x xs) (True,[]))
|
||||
. transpose. takeWhile (not.null). unfoldr (Just. splitAt k)
|
||||
|
||||
combSort xs = (snd. fst) $ until (\((b,_),g)-> b && g==1)
|
||||
(\((_,xs),g) ->(gapSwapping g xs, fg g)) ((False,xs), fg $ length xs)
|
||||
where fg = max 1. truncate. (/1.25). fromIntegral
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
*Main> combSort [23,76,99,58,97,57,35,89,51,38,95,92,24,46,31,24,14,12,57,78]
|
||||
[12,14,23,24,24,31,35,38,46,51,57,57,58,76,78,89,92,95,97,99]
|
||||
Loading…
Add table
Add a link
Reference in a new issue