>백엔드 개발 >PHP 튜토리얼 >PHP Comb Sort 알고리즘 구현

PHP Comb Sort 알고리즘 구현

藏色散人
藏色散人원래의
2019-03-09 10:08:212990검색

빗 정렬 또는 빗 정렬은 버블 정렬의 변형입니다. Shell Sort와 유사하게 Comb Sort는 비교 및 ​​교환에 사용되는 간격을 늘립니다. 일부 구현에서는 간격이 특정 숫자보다 작을 때 삽입 정렬을 사용합니다. 기본 아이디어는 목록 끝 부분에 있는 작은 값을 제거하는 것입니다. 버블 정렬에서는 이러한 값으로 인해 정렬 속도가 크게 느려지기 때문입니다. 그리고 목록 시작 부분의 큰 값은 버블 정렬에 문제를 일으키지 않습니다.

PHP Comb Sort 알고리즘 구현

버블 정렬에서는 두 요소를 비교할 때 항상 간격이 1입니다. 빗 정렬의 기본 아이디어는 간격이 1보다 훨씬 클 수 있다는 것입니다.

PHP 빗 정렬 회로도는 다음과 같습니다.

PHP Comb Sort 알고리즘 구현

코드 예제는 다음과 같습니다.

<?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(&#39;, &#39;,$test_array );
echo "\n排序后数组\n:";
echo implode(&#39;, &#39;,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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.