PHPによるアルゴリズム ソート 基本交換法(バブル・ソート)
2022-08-26
2022-08-26
基本交換法(バブル・ソート)
説明
基本交換法:隣接2項目を順次交換する
原理 → 簡単
交換回数 → 多い
アルゴリズム:
隣接2項目を比較し、後の項目が前の項目より小さければ、両項目を入れ替えを行うことを繰り返す。
PHPソース:
```
<?php
/**
* 1000以内の乱数を生成する
*
* @param int $count
* @return array
*/
function createRandArray($count) {
$arr = [];
for ($i=0; $i<$count; $i++) {
$arr[] = mt_rand(1, 1000);
}
return$arr;
}
/**
* 表示
*
* @param array $arr
*/
function sprint($arr) {
foreach ($arr as $num) {
print("$num ");
}
print("\n");
}
/**
* ソート
*
* @param array $arr
* @return array
*/
function bulleSort($arr) {
$count = count($arr);
for ($i=0; $i<$count-1; $i++) {
for ($j=$count-1; $j>$i; $j--) {
if ($arr[$j] < $arr[$j-1]) {
$t = $arr[$j];
$arr[$j] = $arr[$j-1];
$arr[$j-1] = $t;
}
}
}
return$arr;
}
$arr = createRandArray(10);
sprint($arr);
$arr = bulleSort($arr);
sprint($arr);
<?php
/**
* 1000以内の乱数を生成する
*
* @param int $count
* @return array
*/
function createRandArray($count) {
$arr = [];
for ($i=0; $i<$count; $i++) {
$arr[] = mt_rand(1, 1000);
}
return$arr;
}
/**
* 表示
*
* @param array $arr
*/
function sprint($arr) {
foreach ($arr as $num) {
print("$num ");
}
print("\n");
}
/**
* ソート
*
* @param array $arr
* @return array
*/
function bulleSort($arr) {
$count = count($arr);
for ($i=0; $i<$count-1; $i++) {
for ($j=$count-1; $j>$i; $j--) {
if ($arr[$j] < $arr[$j-1]) {
$t = $arr[$j];
$arr[$j] = $arr[$j-1];
$arr[$j-1] = $t;
}
}
}
return$arr;
}
$arr = createRandArray(10);
sprint($arr);
$arr = bulleSort($arr);
sprint($arr);
```
結果:
```
$ php bubble.php
4563006686459926951515009182
82 91 151 300 456 500 645 668 695 992
```