>  기사  >  백엔드 개발  >  PHP는 버블 정렬을 위한 여러 솔루션을 구현합니다.

PHP는 버블 정렬을 위한 여러 솔루션을 구현합니다.

韦小宝
韦小宝원래의
2018-02-26 09:47:063661검색

실제 PHP 개발에서는 많은 정렬을 접하게 되는데, 버블 정렬도 일반적인 정렬 중 하나입니다. PHP 개발을 잘하려면 PHP를 사용하여 버블 정렬을 쉽게 구현해야 합니다. 이번 글은 여기 PHP 버블정렬에 대해 알려드리겠습니다! PHP에서 버블 정렬을 구현하는 다양한 방법을 살펴보겠습니다!

버블 정렬은 이해하고 구현하기가 매우 쉽습니다. 예를 들어 작은 것부터 큰 것까지 정렬합니다.
배열길이가 N이라고 가정합니다. 1. 인접한 두 데이터를 비교하여 전자의 데이터가 후자의 데이터보다 크면 두 데이터를 교환합니다.
2. 이러한 방식으로 0번째 데이터를 배열의 N-1번째 데이터로 이동한 후 가장 큰 데이터가 배열의 N-1번째 위치로 "싱크"됩니다.
3. N=N-1, N이 0이 아니면 이전 두 단계를 반복하고, 그렇지 않으면 정렬이 완료됩니다.

옵션 1:

<?php
function bubble1_sort($array)
{
    $count = count($array);
    if ($count <= 1) {
        return $array;
    }
    for ($i = 0; $i < $count; $i++) {
        for ($j = 0; $j < $count; $j++) {
            if ($array[$i] < $array[$j]) {
                $temp = $array[$i];
                $array[$i] = $array[$j];
                $array[$j] = $temp;
            }
        }
    }
    return $array;
}

옵션 2:

<?php
function bubble2_sort($array)
{
    $count = count($array);
    if ($count <= 1) {
        return $array;
    }
    for ($i = 0; $i < $count; $i++) {
        for ($j = 1; $j < $count - $i; $j++) {
            if ($array[$j - 1] > $array[$j]) {
                $temp = $array[$j - 1];
                $array[$j - 1] = $array[$j];
                $array[$j] = $temp;
            }
        }
    }
    return $array;
}

옵션 3:

이번에 교환이 발생하면 true인 플래그를 설정하고, 그렇지 않으면 false입니다. 당연히 한 번의 여행에서 교환이 없다면 분류가 완료된 것입니다.

<?php
function bubble3_sort($array)
{
    $count = count($array);
    if ($count <= 1) {
        return $array;
    }
    $flag = true;
    $j = $count;
    while ($flag) {
        $flag = false;
        for ($i = 1; $i < $j; $i++) {
            if ($array[$i - 1] > $array[$i]) {
                $temp = $array[$i - 1];
                $array[$i - 1] = $array[$i];
                $array[$i] = $temp;
                $flag = true;
            }
        }
        $j--;
    }
    return $array;
}

옵션 4:

100개의 숫자 배열이 있는 경우 처음 10개만 순서가 지정되지 않고 다음 90개는 모두 정렬되어 모두 처음 10개 숫자보다 큽니다. 그런 다음 첫 번째 순회 후 마지막으로 교환이 일어나는 위치는 10보다 작아야 하며, 이 위치 이후의 데이터가 순서대로 있어야 합니다. 이 위치를 기록하고, 어레이의 선두에서 이 위치까지 두 번째로 횡단하면 됩니다.

<?php

function bubble4_sort($array)
{
    $count = count($array);
    if ($count <= 1) {
        return $array;
    }
    $flag = $count;
    while ($flag > 0) {
        $k = $flag;
        $flag = 0;
        for ($j = 1; $j < $k; $j++) {
            if ($array[$j - 1] > $array[$j]) {
                $temp = $array[$j - 1];
                $array[$j - 1] = $array[$j];
                $array[$j] = $temp;
                $flag = $j;
            }
        }
    }
    return $array;
}

옵션 5:

<?php

function bubble_sort($array)
{
    $count = count($array);
    if ($count <= 1) {
        return $array;
    }
    for ($i = $count - 1; $i > 0; $i--) {
        $flag = false;
        for ($j = 0; $j < $count; $j++) {
            if ($array[$j] > $array[$j + 1]) {
                $temp = $array[$j];
                $array[$j] = $array[$j + 1];
                $array[$j + 1] = $temp;
                $flag = true;
            }
        }
        if (!$flag)
            break;
    }
    return $array;
}

위는 PHP에서 버블 정렬을 구현하는 다양한 방법입니다. 총 5가지가 있는데, 하나의 원리를 이해하면 나머지 4가지도 자연스럽게 이해하게 됩니다. PHP를 배우는 모든 사람들에게 도움이 필요합니다!


추천 관련 기사:

php는 버블 정렬

빠른 정렬, 삽입 정렬을 구현합니다. php는 버블 정렬,

선택 정렬, 삽입 정렬 및 빠른 정렬을 구현합니다...


위 내용은 PHP는 버블 정렬을 위한 여러 솔루션을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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