算法说明
- 每次都从数组的第一个数开始比较,每次比较一位
- 每遇到比自己小的值,就替换两者位置
实现
PHP版本
function bubbleSort($arr)
{
$length = count($arr);
if ($length < 2) {
return $arr;
}
foreach ($arr as $i => $row) {
for ($j = 0; $j < $length - $i - 1; $j++) {
if ($arr[$j] > $arr[$j + 1]) {
$tmp = $arr[$j];
$arr[$j] = $arr[$j + 1];
$arr[$j + 1] = $tmp;
}
echo implode(' ', $arr) . PHP_EOL;
}
}
return $arr;
}
bubbleSort([3,2,5,7,6,18,2]);
// [2, 2, 3, 5, 6, 7, 18]
JS版本
function bubbleSort(arr) {
let length = arr.length
if (length < 2) {
return arr
}
for (var i in arr) {
let j = 0
for (; j < length - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
let tmp = arr[j]
arr[j] = arr[j + 1]
arr[j + 1] = tmp
}
}
}
return arr
}
bubbleSort([3,2,5,7,6,18,2]);
// [2, 2, 3, 5, 6, 7, 18]
网友评论