Quicksort với Haskell
TIL
594
Haskell
17
algorithm
33
Male avatar

baoquocphan viết ngày 09/07/2016

qsort :: (Integral a) => [a] -> [a]
qsort lst
    | length lst <= 1 = lst
    | otherwise = (qsort left) ++ mid ++ (qsort right) where
        pivot = lst !! (div (length lst) 2 - 1) --todo: viết randomized quicksort
        left = [x | x <- lst, x < pivot]
        mid = [x | x <- lst, x == pivot]
        right = [x | x <- lst, x > pivot]

maxn :: Int
maxn = 1000000

main = do 
    print ((qsort [maxn,(maxn - 1)..1]) !! (maxn - 1))
    -- chạy trong ~3 giây trên ideone.com :(
Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

Male avatar

baoquocphan

4 bài viết.
0 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
Male avatar
1 0
Code import java.util.; import java.lang.; import java.io.; abstract class Chainable { public Chainable andThen(Chainable after) { Chainab...
baoquocphan viết 1 năm trước
1 0
Male avatar
1 0
Code import java.util.; import java.lang.; import java.io.; class Beers implements Iterable { private int count = 0; class BeersIterator i...
baoquocphan viết 1 năm trước
1 0
Bài viết liên quan
White
13 6
Người ta nói "nullable values" là cái "billion dollar mistake". Kể từ ALGOL, chúng ta không thể dùng nullable values/references như một value bình ...
Justin Le viết 3 năm trước
13 6
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


Male avatar
{{userFollowed ? 'Following' : 'Follow'}}
4 bài viết.
0 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!