Blogger Information
Blog 26
fans 0
comment 3
visits 20547
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
php实现排序之冒泡排序算法
无意苦争春的博客
Original
866 people have browsed it

冒泡排序

     冒泡排序(Bubble Sorting)的基本思想是:通过对待排序序列从后向前(从下标较大的元素开始),依次比较相邻元素的排序码,若发现逆序则交换,使排序码较小的元素逐渐从后部移向前部(从下标较大的单元移向下标较小的单元),就象水底下的气泡一样逐渐向上冒。

144931kyfdv8vzdav3wzw5.jpg.thumb.jpg

/**
* 冒泡排序
*
* @param $arr, array 需要排序的数组
*
* @return array 排序好的数组
*/
function bubble_sort($arr) {
    //利用双重循环完成
    //外层循环控制 比较的轮数,每轮会将一个最大的气泡(数)浮到水面。
    //如果数组的元素个数为N 则需要N-1轮完成
    for($i=0, $len=count($arr); $i<$len-1; $i++) {
        //内层循环控制 的比较的次数,
        //第一轮需要比较 N-1次
        //第二轮需要比较 N-2次
        //比较次数由  $len-$i-1
        for($j=0; $j<$len-$i-1; $j++) {
            //比较相邻的两个元素,将大的元素放到后边
            // 相邻的下标使用 $j  和 $j+1 标志
            if($arr[$j] > $arr[$j+1]) {
                //判断 前面的比后边的大,需要交换位置
                $tmp = $arr[$j];
                $arr[$j] = $arr[$j+1];
                $arr[$j+1] = $tmp;
            }
        }
    }
    //返回比较后的数组
    return $arr;
}

//测试
$arr1 = array(1, 3, 0, 2, 6, 2);
print_r(bubble_sort($arr1));




Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post