PHP에서 정렬 알고리즘을 구현하는 방법: 1. 버블 정렬, 2개씩 비교, 각 주기의 마지막 요소를 비교할 필요 없음 2. 선택 정렬, 하나를 기본 값으로 선택하고 나머지를 이것과 비교합니다. 그런 다음 위치를 전환합니다.
PHP에서 정렬 알고리즘을 구현하는 방법:
1. 버블 정렬:
쌍을 비교하면 마지막 요소가 이미 있기 때문에 각 주기의 마지막 요소를 비교할 필요가 없습니다. 가장 크거나 작습니다.
function maopaoSort ($list) { $len = count($list); for ($i = 0; $i < $len - 1; $i++) { for ($j = 0; $j < $len - $i - 1; $j++) { if ($list[$j] > $list[$j + 1]) { $tmp = $list[$j]; $list[$j] = $list[$j + 1]; $list[$j + 1] = $tmp; } } } return $list; }
2. 선택 정렬:
하나를 기본 값으로 선택하고 나머지는 이것과 비교한 다음 위치를 바꿉니다.
function xuanzeSort ($list) { $len = count($list); for ($i = 0; $i < $len - 1; $i++) { $pos = $i; for ($j = $i + 1; $j < $len; $j++) { if ($list[$pos] > $list[$j]) { $pos = $j; } } if ($pos != $i) { $tmp = $list[$pos]; $list[$pos] = $list[$i]; $list[$i] = $tmp; } } return $list; }
3. 빠른 정렬:
원칙은 눈금자 값을 가져온 다음 이를 왼쪽과 오른쪽의 두 배열로 나누어 각각 비교하는 것입니다.
function kuaisuSort ($list) { $len = count($list); if ($len <= 1) {//递归出口 return $list; } $base = $list[0];//选择一个比较值 $leftList = $rightList = []; for ($i = 1; $i < $len; $i++) { if ($base > $list[$i]) { $leftList[] = $list[$i]; } else { $rightList[] = $list[$i]; } } //递归分别再处理左右两边的数组 $leftList = kuaisuSort($leftList); $rightList = kuaisuSort($rightList); return array_merge($leftList, [$base], $rightList); }
4. 이전 숫자가 모두 순차적으로 정렬되어 있다고 가정하면 n번째 숫자를 시퀀스에 삽입해야 합니다
function charuSort ($list) { $len = count($list); for ($i = 1; $i < $len; $i++) { $tmp = $list[$i];//获取对比元素 for ($j = $i - 1; $j > 0; $j--) { if ($list[$j] > $tmp) { $list[$j + 1] = $list[$j]; $list[$j] = $tmp; } else { break; } } } return $list; }
관련 학습 권장사항:
php 프로그래밍(동영상)
위 내용은 PHP에서 정렬 알고리즘을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!