빠른 정렬은 배열을 작은 요소와 큰 요소로 나누어 재귀적으로 정렬하는 재귀적 알고리즘인 반면, 병합 정렬은 배열을 더 작은 배열로 재귀적으로 나누고 각각의 작은 배열을 정렬한 다음 다시 원래 배열로 병합하는 재귀 알고리즘입니다. PHP로 구현된 코드는 다음과 같습니다. 빠른 정렬: 배열을 기준 값보다 작은 요소와 큰 요소로 나눈 다음 각 부분을 재귀적으로 정렬합니다. 병합 정렬: 배열을 더 작은 배열로 반복적으로 나누고 각각의 작은 배열을 정렬한 다음 정렬된 더 작은 배열을 다시 원래 배열로 병합합니다.
PHP 배열 빠른 정렬과 병합 정렬 비교
빠른 정렬과 병합 정렬이 무엇인가요?
빠른 정렬과 병합 정렬은 모두 배열 정렬에 사용되는 일반적인 알고리즘입니다.
코드 구현 是 다음은 PHP로 구현된 빠른 방전 및 병합 정렬 기능입니다.
빠른 제거:function quickSort($arr) { if (count($arr) <= 1) { return $arr; } $pivot = $arr[0]; $left = []; $right = []; for ($i = 1; $i < count($arr); $i++) { if ($arr[$i] < $pivot) { $left[] = $arr[$i]; } else { $right[] = $arr[$i]; } } return array_merge(quickSort($left), [$pivot], quickSort($right)); }
병합 정렬:
function mergeSort($arr) { $length = count($arr); if ($length <= 1) { return $arr; } $mid = floor($length / 2); $left = array_slice($arr, 0, $mid); $right = array_slice($arr, $mid); return merge(mergeSort($left), mergeSort($right)); } function merge($left, $right) { $result = []; $lIndex = $rIndex = 0; while ($lIndex < count($left) && $rIndex < count($right)) { if ($left[$lIndex] < $right[$rIndex]) { $result[] = $left[$lIndex++]; } else { $result[] = $right[$rIndex++]; } } while ($lIndex < count($left)) { $result[] = $left[$lIndex++]; } while ($rIndex < count($right)) { $result[] = $right[$rIndex++]; } return $result; }
실제 전투 사례
레이 정수.
퀵 정렬 사용:$sortedArray = quickSort([5, 2, 8, 3, 1, 9, 4, 7, 6]); print_r($sortedArray);
[5, 2, 8, 3, 1, 9, 4, 7, 6]
출력:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
병합 정렬 사용:
$sortedArray = mergeSort([5, 2, 8, 3, 1, 9, 4, 7, 6]); print_r($sortedArray);
출력:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
위 내용은 PHP 배열 빠른 정렬과 병합 정렬의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!