빗 정렬 또는 빗 정렬은 버블 정렬의 변형입니다. Shell Sort와 유사하게 Comb Sort는 비교 및 교환에 사용되는 간격을 늘립니다. 일부 구현에서는 간격이 특정 숫자보다 작을 때 삽입 정렬을 사용합니다. 기본 아이디어는 목록 끝 부분에 있는 작은 값을 제거하는 것입니다. 버블 정렬에서는 이러한 값으로 인해 정렬 속도가 크게 느려지기 때문입니다. 그리고 목록 시작 부분의 큰 값은 버블 정렬에 문제를 일으키지 않습니다.
버블 정렬에서는 두 요소를 비교할 때 항상 간격이 1입니다. 빗 정렬의 기본 아이디어는 간격이 1보다 훨씬 클 수 있다는 것입니다.
PHP 빗 정렬 회로도는 다음과 같습니다.
코드 예제는 다음과 같습니다.
<?php function combSort($my_array){ $gap = count($my_array); $swap = true; while ($gap > 1 || $swap){ if($gap > 1) $gap /= 1.25; $swap = false; $i = 0; while($i+$gap < count($my_array)){ if($my_array[$i] > $my_array[$i+$gap]){ list($my_array[$i], $my_array[$i+$gap]) = array($my_array[$i+$gap],$my_array[$i]); $swap = true; } $i++; } } return $my_array; } $test_array = array(3, 0, 2, 5, -1, 4, 1); echo "原始数组 :\n"; echo implode(', ',$test_array ); echo "\n排序后数组\n:"; echo implode(', ',combSort($test_array)). PHP_EOL;
출력:
原始数组 : 3, 0, 2, 5, -1, 4, 1 排序后数组 :-1, 0, 1, 2, 3, 4, 5
이 문서는 PHP Comb Sort(Comb Sort)의 구현 방법에 대한 것입니다. 알고리즘이 필요하다면 도움이 되길 바랍니다.
위 내용은 PHP Comb Sort 알고리즘 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!