php - 为什么冒泡排序从 C 移植到 PHP 不起作用?

标签 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";

    ?>

最佳答案

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

前提是没有语法错误,老实说我没有看过。

关于php - 为什么冒泡排序从 C 移植到 PHP 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31283736/

相关文章:

java - 降序排序算法

c++ - QuickSort 比 std::sort 慢

php - 如何从在线插入到两个表中?

c++ - 检查算法中的数值精度

在等腰三角形周围放置双边框的算法

algorithm - 用相等的 XOR 划分数组

sql - 使用TOP 5 Access SQL返回超过5个结果?

php - 在 mysql 查询中提供无效查询

php - mysqli:它可以在一条语句中准备多个查询吗?

php mysql - 在第三个结果后回显清除除法