アルゴリズムとデータ構造, PHP

PHP バブルソート

 

バブルソート

 

 

 

1ループ毎に隣同士で比較するソートです。

 

実装コード

https://github.com/yuukanehiro/AlgorithmsDataStructure/blob/main/Sort/BubbleSort.php

 

<?php

$data = range(0, 100);
shuffle($data);
$flag = false;
main($flag, $data);

function main(bool $flag = true, array $data) {
    switch ($flag) {
        // テスト
        case 0:
            printf("テスト結果は「%s」です。", testBubbleSort());
            break;
        // 実行
        case 1:
            var_dump(bubbleSort($data));
            break;
    }
}


function bubbleSort(array $data = []): array
{
    $max = count($data);

    // 要素数の繰り返し
    for ($i = 0; $i < $max; $i++) {
        // 要素数-1回の繰り返し
        for ($j = 1; $j < $max; $j++) {
            // 隣同士を比較して順番に入れ替える
            if ($data[$j-1] > $data[$j]) {
                $temp = $data[$j];
                $data[$j] = $data[$j-1];
                $data[$j-1] = $temp;
            }
        }
    }
    return $data;
}

function testBubbleSort()
{
    for ($i = 0; $i < 100; $i++) {
        $data = range(0, 1000);
        shuffle($data);
        $data1 = $data;
        $data2 = $data;
        if (bubbleSort($data1) != sort($data2)) {
            return "不合格";
        }
    }
    return "合格";
}

 

Amazonおすすめ

iPad 9世代 2021年最新作

iPad 9世代出たから買い替え。安いぞ!🐱 初めてならiPad。Kindleを外で見るならiPad mini。ほとんどの人には通常のiPadをおすすめします><

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)