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')