หาโค้ดmerge sort แบบง่ายๆ ภาษาซี

ผมอยากหาโค้ดmerge sort แบบง่ายๆ ที่อ่านได้ง่ายจะเอาไปนำเสนออาจารณ์แบบภาษาซี
แก้ไขข้อความเมื่อ
คำตอบที่ได้รับเลือกจากเจ้าของกระทู้
ความคิดเห็นที่ 1
Haskell โค้ดสั้น อ่านง่าย

import Data.List

merge :: Ord a => [a] -> [a] -> [a]
merge x [] = x
merge [] y = y
merge (x:xs) (y:ys) = case compare x y of
                           LT -> x : merge xs (y:ys)
                           _ -> y : merge (x:xs) ys

mergesort :: Ord a => [a] -> [a]
mergesort [x] = [x]
mergesort list = merge left right where
                   split = splitAt (length list `div` 2) list
                   left = mergesort $ fst $ split
                   right = mergesort $ snd $ split
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่