Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import System.Random
- import System.Environment(getArgs)
- import Data.List(nub)
- main::IO ()
- main = do
- s <- getArgs
- let numbers = fmap read $ s :: [Int]
- putStrLn ""
- thanosSort numbers
- where
- thanosSort numbers = if sorted numbers
- then putStrLn $ show numbers ++ " is perfectly sorted. As all things should be."
- else do
- putStrLn $ show numbers ++ " is not sorted\n\t[SNAP!]"
- g <- getStdGen
- let n = length numbers
- ks = take (div n 2) $ nub $ randomRs (0, n - 1) g
- ms = [numbers !! k | k <- ks]
- thanosSort ms
- sorted [_] = True
- sorted (x1:(x2:xs)) = if x1 <= x2
- then sorted (x2:xs)
- else False
Advertisement
Add Comment
Please, Sign In to add comment