에티테마

php 병합정렬 알고리즘

페이지 정보

작성자 소프트존 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 댓글 0건 작성일 22-12-13 01:41

본문

병합 정렬(merge sort)은 정렬 알고리즘 중 하나로, 분할 정복(divide and conquer) 알고리즘의 일종입니다. 

병합 정렬은 주어진 리스트를 여러 개의 작은 리스트로 분할한 다음, 각 작은 리스트를 정렬한 다음 다시 하나의 정렬된 리스트로 합치는 과정을 

반복하여 정렬하는 방법입니다. 병합 정렬은 안정적인 정렬 알고리즘입니다.


function mergeSort($arr) {
    $len = count($arr);
    if ($len <= 1) {
        return $arr;
    }
    $mid = floor($len / 2);
    $left = array_slice($arr, 0, $mid);
    $right = array_slice($arr, $mid);
    $left = mergeSort($left);
    $right = mergeSort($right);
    return merge($left, $right);
}

$arr = array(5, 3, 8, 4, 9, 1, 6, 2, 7);
echo '<pre>';
print_r(mergeSort($arr));
echo '</pre>';

------- Output -------
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
    [5] => 6
    [6] => 7
    [7] => 8
    [8] => 9
)
 
  • 트위터로 보내기
  • 페이스북으로 보내기
  • 구글플러스로 보내기

댓글목록

등록된 댓글이 없습니다.