PHP

[알고리즘] PHP 배열과 버블정렬

민이뭘라이프 2022. 8. 16. 23:46

버블 정렬(bubble sort)은 서로 인접한 두 원소의 대소를 비교하고, 조건에 맞지 않다면 자리를 교환하며 정렬하는 알고리즘이다. 배열을 이용하여 배열의 원소 값을 서로 바꿔가면서 정렬하는 과정에서 원소의 이동이 거품이 수면으로 올라오는 듯한 모습을 보이기 때문에 버블 정렬이라고 일컽는다.

GIF로 이해하는 버블 정렬 (그림 참조: https://gyoogle.dev/blog/)


PHP 버블 정렬 전과 후(오름차순)

<!DOCTYPE html>
<head>
    <meta charset="utf-8">
    <style>

    </style>
</head>
<body>

<?php

    $num = array(41, 34, 6, 16, 38, 36, 28, 19, 45, 43, 49);
    $count = 11;                            // 배열의 원소 개수
    
    echo "정렬 전 : ";
    for ($a = 0; $a < 11; $a++)
        echo $num[$a]." ";                  // 정렬되기 전 배열의 원소 출력
    
    echo "<br>";

    for ($i = $count-1; $i >= 0; $i--)      // $i는 10부터 0까지 1씩 감소
    {
        for ($j = 0; $j < $i; $j++)         // 인접한 두 수 비교
        {
            if ($num[$j] > $num[$j+1]) 
            {
                $tmp = $num[$j];            // 앞의 데이터를 $tmp 에 잠시 저장
                $num[$j] = $num[$j+1];      // 뒤의 데이터를 앞의 배열 원소에 저장
                $num[$j+1] = $tmp;          // $tmp를 뒤의 배열 원소에 저장
            }
        }
    }

    echo "버블 정렬(오름차순) 후 : ";
    for ($a = 0; $a < 11; $a++)
        echo $num[$a]." ";                  // 버블 정렬 후 배령의 원소 출력

?>

</body>
</html>