Skip to content

Instantly share code, notes, and snippets.

@arnemart
Last active August 29, 2015 13:56
Show Gist options
  • Save arnemart/8813161 to your computer and use it in GitHub Desktop.
Save arnemart/8813161 to your computer and use it in GitHub Desktop.
quicksort :: Ord a => [a] -> [a]
quicksort [] = []
quicksort (pivot:rest) = (quicksort smaller) ++ [pivot] ++ (quicksort greater)
where
smaller = filter (<= pivot) rest
greater = filter (> pivot) rest
merge :: Ord a => [a] -> [a] -> [a]
merge [] [] = []
merge as [] = as
merge [] bs = bs
merge (a:as) (b:bs) = if a < b then
a : merge as (b:bs)
else
b : merge (a:as) bs
mergesort :: Ord a => [a] -> [a]
mergesort [] = []
mergesort [a] = [a]
mergesort list = merge (mergesort $ take half list) (mergesort $ drop half list)
where
half = (length list) `div` 2
sumlist :: [Int] -> Int -- sumlist er en funksjon som tar inn en liste av tall og returnerer et tall
sumlist [] = 0 -- summen av en tom liste er null
sumlist (num:rest) = num + sumlist rest -- summen av en liste er det første elementet pluss summen av resten av listen
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment