Jump to content
  • 0

Быстрая сортировка


kilogram
 Share

Question

<?php 
$mas = array(5,3,-1,4,2,-300,6,-500,-100);
function sos($a1,$a2)
{
return $a2 - $a1;
}
function dobavka(&$mas, $func){
sortirovka($mas, 0, count($mas)-1, $func);
}

function sortirovka(&$mas,$min,$max,$func){
$i = $min;
$j = $max;
$x = $mas[($min+$max)/2];

do{
while($func($mas[$i], $x)<0) ++$i;
while($func($mas[$j], $x)>0) --$j;
if($i<=$j){
$element = $mas[$i];
$mas[$i] = $mas[$j];
$mas[$j] = $element;
$i++; $j--;
}
}while($i<=$j);

if($min<$j) sortirovka($mas,$min,$j, $func); //начало с серединой
if($i<$max) sortirovka($mas,$i,$max, $func); // середина с концом
}

dobavka($mas, 'sos');
foreach($mas as $rez)
echo $rez.' '.' ';

?>

Смущает, как в переменную $func можно добавить круглые скобки и записать выражение?

while($func($mas[$i], $x)<0) ++$i;
while($func($mas[$j], $x)>0) --$j;

Что это означает? С функцией понимаю ,а вот с переменной, как она со скобками и внутри выражение?

Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 0

Попробовал написать такой код, который вычисляет квдадрат числа.


function santa($n)
{
return $n*$n;
}

function balta($n)
{
return $n(5);
}

echo balta("santa");
echo '<br />';

Как-то странно так получилось, ради интереса написал santa в параметре функции и ошибок не выдало.

Это что, получается я передал всю функцию санта в функции балта?

В пхп разве если при вызове писать что-то в кавычках и оно совпадет с названием функции ранее где-то описаной в коде выше то передастся не строка ,а сама функция в качестве аргумента?

Link to comment
Share on other sites

  • 0

Попробовал написать такой код, который вычисляет квдадрат числа.


function santa($n)
{
return $n*$n;
}

function balta($n)
{
return $n(5);
}

echo balta("santa");
echo '<br />';

Как-то странно так получилось, ради интереса написал santa в параметре функции и ошибок не выдало.

Это что, получается я передал всю функцию санта в функции балта?

В пхп разве если при вызове писать что-то в кавычках и оно совпадет с названием функции ранее где-то описаной в коде выше то передастся не строка ,а сама функция в качестве аргумента?

Вы идите и почитайте что я вам постом выше по ссылке дал и не переспрашивайте.

RTFM :devil:

Link to comment
Share on other sites

  • 0

Прочитал я это в документации. Я так понял интерпретатор языка ПХП когда видит название переменной, а за ней скобки, подставляет значение этой переменной в название этой переменной со скобками,если значение этой переменной совпало с названием такой функции описаной где-то в коде.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy