もくじ
バブルソート
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 "合格"; }