温馨提示×

php冒泡排序法如何处理部分有序数组

PHP
小樊
81
2024-10-14 02:37:43
栏目: 编程语言

冒泡排序是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。

对于部分有序数组,冒泡排序仍然适用。在每次遍历过程中,未排序部分的相邻元素会根据大小关系进行交换,直到整个数组有序。以下是使用 PHP 实现冒泡排序的示例:

function bubbleSort(&$arr) {
    $len = count($arr);
    $flag = true;

    for ($i = 0; $i < $len - 1 && $flag; $i++) {
        $flag = false;
        for ($j = 0; $j < $len - 1 - $i; $j++) {
            if ($arr[$j] > $arr[$j + 1]) {
                // 交换元素
                $temp = $arr[$j];
                $arr[$j] = $arr[$j + 1];
                $arr[$j + 1] = $temp;
                $flag = true;
            }
        }
    }
}

// 示例数组
$arr = array(3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5);

// 调用冒泡排序函数
bubbleSort($arr);

// 输出排序后的数组
print_r($arr);

在这个示例中,我们定义了一个名为 bubbleSort 的函数,它接受一个数组作为参数。通过两层循环,我们不断地比较并交换未排序部分的相邻元素,直到整个数组有序。最后,我们输出排序后的数组。

0