haskell-ное: впадаю в детство
Mar. 28th, 2008 11:25 amqsort, qsort... Какой-такой qsort... Сортировка пузырьком - наше все:
IMHO получилось не сложнее, чем на C каком-нибудь:
IMHO получилось не сложнее, чем на C каком-нибудь:
import Data.Array
import System.Random
bubbleSort :: Ord e => Array Int e -> Array Int e
bubbleSort a = let (o,size) = bounds a
swap a n | (a!n) > (a!(n+1)) = a // [(n,a!(n+1)),(n+1,a!n)]
swap a n = a
pass a n = foldl swap a [ o .. n ]
in foldl pass a $ reverse [ o .. size-1 ]
main = do s <- sequence $ take 10 $ repeat $ randomRIO (0::Int,100)
let a = listArray (0,length(s)-1) s
a' = bubbleSort a
sequence $ map (putStrLn.show) (elems a')