Difference between revisions of "User:Marcelo.parrela"
Jump to navigation
Jump to search
(Quicksort - An other Implementation) |
|||
Line 1: | Line 1: | ||
+ | <pre> |
||
− | <pre style="border: solid 1 black;"> |
||
-- by Marcelo Parrela (marcelo.parrela@gmail.com) |
-- by Marcelo Parrela (marcelo.parrela@gmail.com) |
||
quicksort' [] = [] |
quicksort' [] = [] |
||
Line 5: | Line 5: | ||
where |
where |
||
(l1,l2) = separate as a [] [] |
(l1,l2) = separate as a [] [] |
||
+ | |||
− | <i style="color: blue;">-- lê a lista e a separa em duas: l1 para os elementos</i> |
||
− | <i style="color: blue;">-- menores ou iguais ao pivot e l2 para os demais</i> |
||
separate [] _ a b = (a,b) |
separate [] _ a b = (a,b) |
||
separate (l:ls) a l1 l2 |
separate (l:ls) a l1 l2 |
Revision as of 12:15, 14 October 2013
-- by Marcelo Parrela (marcelo.parrela@gmail.com) quicksort' [] = [] quicksort' (a:as) = quicksort' l1 ++ a : quicksort' l2 where (l1,l2) = separate as a [] [] separate [] _ a b = (a,b) separate (l:ls) a l1 l2 | l <= a = separate ls a l1' l2 | otherwise = separate ls a l1 l2' where l1' = l1++[l] l2' = l2++[l]