Я работал над пузырьковой сортировкой (в PHP) и хотел добавить дополнительный параметр в свою функцию, где он решает тип заказа (от низкого до высокого или от высокого до низкого), поэтому вместо копирования вставьте весь код и просто измените его. знак, есть что-то вроде специального синтаксиса или что-то, что я могу добавить?
Это может быть хорошо для других функций, где просто 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.