php
function bidirectional_bubble_sort($array) {
$left = 0;
$right = count($array) - 1;
while ($left < $right) {
$swapped = false;
for ($i = $left; $i < $right; $i++) {
if ($array[$i] > $array[$i + 1]) {
list($array[$i], $array[$i + 1]) = array($array[$i + 1], $array[$i]);
$swapped = true;
}
}
$right--;
for ($i = $right; $i > $left; $i--) {
if ($array[$i] < $array[$i - 1]) {
list($array[$i], $array[$i - 1]) = array($array[$i - 1], $array[$i]);
$swapped = true;
}
}
$left++;
if (!$swapped) {
break;
}
}
return $array;
}
$array = [5, 3, 8, 2, 1, 4];
$result = bidirectional_bubble_sort($array);
print_r($result);
顶一下
(0)
0%
踩一下
(0)
0%
- 相关评论
- 我要评论
-