冒泡排序PHP实现

来源:互联网 发布:java源代码怎么运行 编辑:程序博客网 时间:2024/06/01 09:29
/** * 冒泡排序:稳定,时间复杂度 O(n^2) * 冒泡排序方法是最简单的排序方法。这种方法的基本思想是, * 将待排序的元素看作是竖着排列的“气泡”,较小的元素比较轻, * 从而要往上浮。在冒泡排序算法中我们要对这个“气泡”序列处理若干遍。 * 所谓一遍处理,就是自底向上检查一遍这个序列,并时刻注意两个相邻的元素的顺序是否正确。 * 如果发现两个相邻元素的顺序不对,即“轻”的元素在下面,就交换它们的位置。 * 显然,处理一遍之后,“最轻”的元素就浮到了最高位置;处理二遍之后,“次轻”的元素就浮到了次高位置。 * 在作第二遍处理时,由于最高位置上的元素已是“最轻”元素,所以不必检查。 * 一般地,第i遍处理时,不必检查第i高位置以上的元素,因为经过前面i-1遍的处理,它们已正确地排好序。 * @param array $arr * @return array */function bubbleSort(array $arr){    $count = count($arr);    if($count > 1){        //表示要跑N趟        for ($i=0;$i<$count;$i++){            //表示每趟要比较的次数            //比较完一次后,最大的数就到了最右边,就可以少比较一次,所以要减去$            for ($j=$i+1;$j<$count- $i - 1;$j++){                if($arr[$j] > $arr[$j + 1]){                    $temp = $arr[$j];                    $arr[$j] = $arr[$j + 1];                    $arr[$j + 1] = $temp;                }            }        }    }else{        return $arr;    }}
0 0
原创粉丝点击