>백엔드 개발 >PHP 문제 >PHP에서 정렬 알고리즘을 구현하는 방법

PHP에서 정렬 알고리즘을 구현하는 방법

coldplay.xixi
coldplay.xixi원래의
2020-10-06 10:33:065531검색

PHP에서 정렬 알고리즘을 구현하는 방법: 1. 버블 정렬, 2개씩 비교, 각 주기의 마지막 요소를 비교할 필요 없음 2. 선택 정렬, 하나를 기본 값으로 선택하고 나머지를 이것과 비교합니다. 그런 다음 위치를 전환합니다.

PHP에서 정렬 알고리즘을 구현하는 방법

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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