我正在研究一个冒泡排序(在PHP中),我想在函数中添加一个额外的参数,它决定顺序类型(从低到高或从高到低),所以与其复制粘贴所有代码并只更改一个符号,还有什么像特殊的sintaxys或任何我可以添加的东西吗?
这对其他函数也很好,因为只有IF
比较,的变化
function bubbleSort($array,$order){
$cnt = count($array);
if($cnt > 0) {
for ($i = 0; $i < $cnt; $i++) {
for ($j = 0; $j < $cnt - 1 - ($i); $j++) {
$temp = $array[$j];
if ($array[$j] ***>*** $array[$j + 1]) { // Here is where that sign must change
$array[$j] = $array[$j + 1];
$array[$j + 1] = $temp;
}
}
}
}
return $array;
}
我知道问题的题目没那么巧妙。我感谢您的时间并帮助
在这种情况下,您可以将两个操作数与-1:相乘
const LOW_TO_HIGH = 1;
const HIGH_TO_LOW = -1;
function bubbleSort($array,$order){
$cnt = count($array);
if($cnt > 0) {
for ($i = 0; $i < $cnt; $i++) {
for ($j = 0; $j < $cnt - 1 - ($i); $j++) {
$temp = $array[$j];
if ($array[$j] * $order > $array[$j + 1] * $order) {
$array[$j] = $array[$j + 1];
$array[$j + 1] = $temp;
}
}
}
}
return $array;
}
然后将这两个常量中的一个作为第二个参数传递给bubbleSort。
您可以在要检查的元素前面添加一个负号,这样就会发生相反的情况。
将元素(无论您在哪里检查不等式)乘以$c
,其中$c
是+1或-1,根据High to Low或Low to High。