冒泡排序算法

2018-12-12 21:00:00
赵勤松
原创
1987
摘要:冒泡排序,做为常用的一种排序算法,希望大家都能了解并运用它

冒泡算法,简单来说,就是按着顺序,逆序,或者其他确定的顺序规则,将前后两个相邻的元素依次进行比较,交换的过程,不断重复此一过程,直到没有元素可以比较为止。


以下通过PHP代码来描述一过程

sort.php
<?php
$arrInit = array();
//  生成10个100以内随机整数(1-100),放入arrInit数组中
for ($i=0; $i<10; $i++)
    $arrInit[$i] = rand(1,100);
print_r("排序前数组内容为\n");
print_r($arrInit);
//  使用冒泡法排序
for ($i=0; $i<9; $i++)
{
    for ($j=0; $j<10-1-$i; $j++)
    {
        //  如果前面的数大于后面的数,则交换两个位置
        if ($arrInit[$j] > $arrInit[$j+1])
        {
            $intTemp = $arrInit[$j];
            $arrInit[$j] = $arrInit[$j+1];
            $arrInit[$j+1] = $intTemp;
        }
    }
}
print_r("排序后数组内容为\n");
print_r($arrInit);
?>

代码的主要功能,由以下几部分完成:

1.随机生成包含10个元素的数组,内容为1-100之内的整数

2.第1个循环,表示要执行比对的轮数,因为第一次比对时,已经通过$j+1的方法比对了第9的元素,所以比对的轮数为8即可

3.第2个循环,表示从0开始比对,每次比对当前元素和下一个元素,如果前一个大于后一个,则交换2个元素的内容

4.完成一次第2循环后,进入下一轮比对,此时需要比对的元素比上一轮减少一个,即为8,每次循环都会减1

5.通过上述比对,就可以达成里面的元素从小到大排序


文章分类
联系我们
联系人: powereye
Email: zqs@someapp.cn
QQ: 1134846
微信: powereye