1. 概述
- 思想:两个循环嵌套,大循环从最大开始,小循环从0开始至大循环当前位置,小循环中的当前数与下一个数比较,而交换位置,一次来使得最大的数,升到最大的位置,如同泡泡一样,一个一个往上冒。
- 稳定性:稳定
-
2. 实现代码
```php <?php class BubbleSort { private $ori = []; public $new = []; public function __construct(array $arr) {
$this->ori = $arr;$r = $this->bubble($this->ori);$this->new = $r;
}
private function bubble(array $arr) {
for ($i = count($arr) - 1; $i > 0; $i--) {for ($j = 0; $j < $i; $j++) {if ($arr[$j] > $arr[$j + 1]) {$arr = self::swap($arr, $j, $j + 1);}}exit;}return $arr;
}
public static function swap(array $arr, int $i, int $j) {
$tmp = $arr[$i];$arr[$i] = $arr[$j];$arr[$j] = $tmp;return $arr;
} }
$arr = [5, 3, 6, 8, 1, 7, 9, 4, 2]; $cls = new BubbleSort($arr); print_r($cls->new); ```
