이 기사의 내용은 PHP 정렬 알고리즘에 관한 것입니다. PHP 퀵 정렬의 알고리즘 원리와 알고리즘 구현에 대한 내용입니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.
php 빠른 정렬 알고리즘 원리: 현재 배열에서 임의의 요소를 찾습니다(일반적으로 첫 번째 요소 선택). 기준으로 left와 rignt 두 개의 빈 배열을 만들고 전체 배열 요소를 순회합니다. traverse 수신된 요소가 현재 요소보다 작으면 왼쪽 배열에 배치하고, 현재 요소보다 크면 rignt에 배치한 후 새 배열에도 동일한 작업을 수행합니다.
재귀:
재귀는 함수가 자신을 호출하는 메커니즘입니다.
재귀에는 경계조건, 즉 재귀적 종료(exit recursion)가 있어야 합니다.
Recursive Forward 섹션과 Recursive Return 섹션이 최종 값입니다
경계 조건이 충족되지 않을 경우 Recursive Forward ;경계조건(재귀 종료)이 만족되면 재귀가 반환됩니다.
PHP의 재귀는 성능을 많이 소모하므로 사용하지 않는 것이 좋습니다.
php 퀵 정렬 원리 복합 재귀 원리
재귀 지점: 배열 요소가 1보다 크면 다시 분해해야 하므로 재귀 지점은 새로 구성된 배열의 개수입니다. 요소가 1보다 큼
Recursive 종료: 배열 요소의 개수가 1이면 새 배열을 정렬할 필요가 없습니다.
php 빠른 정렬 방법 구현 코드:
$arr = [34,56,7,89,12,9]; function quick_sort($arr) { // 判断参数是否是一个数组 if(!is_array($arr)) return false; // 递归出口:数组长度为1,直接返回数组 $length = count($arr); if($length <= 1) return $arr; // 数组元素有多个,则定义两个数组 $left = $right = []; // 循环遍历数组,把第一个元素当做比较的对象 for($i=1;$i<$length;$i++) { //判断当前元素的大小 if($arr[$i] < $arr[0]) { $left[] = $arr[$i]; } else { $right[] = $arr[$i]; } } // 递归调用 $left = quick_sort($left); $right = quick_sort($right); // 将所有的结果合并 return array_merge($left,[$arr[0]],$right); } print_r(quick_sort($arr));
관련 권장 사항:
php 버블 정렬 빠른 정렬, php 버블 정렬 #🎜 🎜#
php 버블 정렬 빠른 정렬, php 버블 정렬_PHP 튜토리얼
위 내용은 PHP 정렬 알고리즘: PHP 빠른 정렬 알고리즘 원리 및 알고리즘 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!