하스켈로 개미노트 드릴게요.
그러나 2-5의 도표로 날아가면 가장 작은 전역 트리 문제(플린법)가 생긴다.
냉정하게 생각하면 빠른 프로그램을 만들려면 배열이 있어야 한다!
지난번에는'하스켈로 아레이와 루프를 쓰기 시작하면 질 것 같다'는 글이 적힌 자리에서 머리말을 철회했다!
Prinm Path Array와 Loop을 모두 사용해야 하기 때문입니다.
하스켈 개미본(초급편) - 도표.
-- プリム法
prim :: Int -> Int -> Int -> [(Int, Int, Int)] -> Int
prim n m start es = runST $ do
used <- newArray (0, n - 1) False :: ST s (STArray s Int Bool)
writeArray used start True
let ss = fmap (\(t, c) -> (c, t)) (g ! start)
go 0 used (foldr push Empty ss)
where
g = buildGList (0, n - 1) [(a, (b, c)) | (a, b, c) <- es]
go !k used que
| Just ((c, t), q) <- pop que = do
usedt <- readArray used t
if usedt
then go k used q
else do
let ss = fmap (\(t, c) -> (c, t)) (g ! t)
let q' = foldr push q ss
writeArray used t True
go (k + c) used q'
| otherwise = return k
방향성으로 다음과 같은 3가지가 있는데 어떡하지.(이렇게 되면 수행이 될 것 같다.)
(저는 Haskeller가 되는 것이 올바른 길이라고 생각합니다.)
스케줄러: 항상 이거. 현실해석. 타협의 산물. 인생은 짧다. 하스켈이 되고 싶어? 경보 전문가가 하고 싶어?
프로그램 뇌의 Haskell - 빠른 정렬
Darside of the Haskell- 부작용 빠른 정렬
참고로 Prem법에서 아래의 영상은 비교적 이해하기 쉽다.
그리고 다음 알고리즘에서 아래의 영상은 비교적 이해하기 쉽다.
Reference
이 문제에 관하여(하스켈로 개미노트 드릴게요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/forest1040/articles/98005a0d0b293c3eb1bd텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)