에티테마

php 퀵정렬 알고리즘

페이지 정보

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

본문

퀵 정렬은 기본적인 정렬 알고리즘 중 하나입니다. 

이 알고리즘은 주어진 리스트에서 피벗을 선택하고, 피벗보다 작은 값은 피벗의 왼쪽으로, 피벗보다 큰 값은 피벗의 오른쪽으로 이동시킵니다. 

그러면 왼쪽 부분과 오른쪽 부분에는 각각 정렬된 부분 리스트가 만들어집니다. 

이 과정을 재귀적으로 수행하면 최종적으로 전체 리스트가 정렬됩니다.


function quickSort($arr) {
    $len = count($arr);
    if ($len <= 1) {
        return $arr;
    }
    $pivot = $arr[0];
    $left = $right = array();
    for ($i = 1; $i < $len; $i++) {
        if ($pivot > $arr[$i]) {
            $left[] = $arr[$i];
        } else {
            $right[] = $arr[$i];
        }
    }
    $left = quickSort($left);
    $right = quickSort($right);
    return array_merge($left, array($pivot), $right);
}

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

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

댓글목록

등록된 댓글이 없습니다.