为什么将C语言移植到Bubble Sort的PHP不起作用?

时间:2015-07-08 04:50:54

标签: php algorithm sorting

我决定为包含排序算法和搜索算法的语言创建帮助文件。我从C开始,想在PHP中创建相邻的。但是我传递的数组没有被排序。 为什么呢?

<?php
        function BubbleSort($array, $length)
    {
        for($i = 0; $i < $length - 1; ++$i)
        {
            for($j = 0; $j < $length - $i - 1; ++$j)
            {
                if($array[$j] > $array[j + 1])
                {
                    $tmp = $array[$j];
                    $array[j] = $array[j + 1];
                    $array[j + 1] = $tmp;
                }
            }
        }


    }   

    $array = [5,2,3,1,2];
    $size = 5;

    print "Array is now: ";

    for($i = 0; $i < $size; $i++)
    {
        print "{$array[$i]} ";
    }

    print "\n";

    BubbleSort($array, $size);

    for($i = 0; $i < $size; $i++)
    {
        print "{$array[$i]} ";
    }

    print "\n";

    ?>

2 个答案:

答案 0 :(得分:1)

您没有通过引用传递数组,因此您的函数必须返回数组,然后您必须将其分配回原始数组。

如果没有语法错误,我真的没有看。

答案 1 :(得分:1)

您有语法错误

更改

$array[j + 1]

$array[$j + 1]

因为php是松散类型和其他原因导致j被视为常量j,并且警告级别类似于~warning:未知常量j假设'j',将其视为文字字符串' j'然后将'j'添加到1,或类似的东西,这只是我的头顶。

相关问题