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
)
댓글목록
등록된 댓글이 없습니다.