빠른 정렬은 비교 정렬입니다. 즉, 모든 유형의 요소를 정렬할 수 있습니다. 퀵 정렬은 버블 정렬을 개선한 것이라고 할 수 있습니다.
빠른 정렬 구현 아이디어의 개략도는 다음과 같습니다.
참고: 수평선은 피벗 값입니다.
빠른 정렬 알고리즘 코드는 다음과 같습니다.
<?php function quick_sort($my_array) { $loe = $gt = array(); if(count($my_array) < 2) { return $my_array; } $pivot_key = key($my_array); $pivot = array_shift($my_array); foreach($my_array as $val) { if($val <= $pivot) { $loe[] = $val; }elseif ($val > $pivot) { $gt[] = $val; } } return array_merge(quick_sort($loe),array($pivot_key=>$pivot),quick_sort($gt)); } $my_array = array(3, 0, 2, 5, -1, 4, 1); echo '原始数组 : '.implode(',',$my_array).'\n'; $my_array = quick_sort($my_array); echo '排序后数组 : '.implode(',',$my_array);
출력:
原始数组:3,0,2,5,-1,4,1 排序后数组:-1,0,1,2,3,4,5
관련 함수 소개:
array_shift() 함수는 배열의 시작 부분에 있는 단위를 배열 밖으로 이동합니다.
array_shift ( array &$array ) : mixed
array_shift()는 배열의 첫 번째 단위를 밖으로 이동하고 결과로 반환합니다. , 배열의 길이를 하나씩 줄이고 다른 모든 단위를 하나씩 앞으로 이동합니다. 모든 숫자 키 이름은 0부터 계산되도록 변경되며, 텍스트 키 이름은 변경되지 않습니다.
array_merge() 함수는 하나 이상의 배열을 병합합니다.
array_merge ( array $array1 [, array $... ] ) : array
array_merge()는 하나 이상의 배열의 셀을 병합하고 한 배열의 값은 이전 배열에 추가됩니다. 결과 배열을 반환합니다.
이 글은 PHP 퀵 정렬 알고리즘에 대한 소개입니다. 도움이 필요한 친구들에게 도움이 되길 바랍니다!
위 내용은 PHP에서 빠른 정렬을 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!