php冒泡排序简解

借今天的1024程序员节,复习一下以前的基础知识,要不然时间久不用都忘掉了要。

冒泡排序:从大到小,或者从小到大,相邻的两个数依次排序,就和小时候老师按照个子大小排队似的,是不是很形象,哈哈哈。。。

从小到大

首先,定一个数组;

$a = array(3,2,4,6,1,8,7,10,9);

其次,用代码的思维分析下,相邻的两个数,如果前面的大于后面的,是不是后面的得排到前面来,那么怎么排呢?是不是要借用一个临时变量$t,来存储前面的数,然后进行互换

接着,我们定位前一个数和后一个数

两个变量,一个$i,作为前一个数的下标,一个$j,作为后一个数的下标,循环这两个数的下标,就把整个数组的前一个数和后一个数都能做定位了

看好了,开始要循环了

//$i为数组的第一个元素的下标,因为数组的键值是从O开始的,循环的次数不能超过数组元素的总个数,那超过了也没得循环了是不

for($i=0;$i < count($a);$i++)}{

   //$j 数组第二个元素的下标,从1开始, 循环的次数也是要小于数组元素的总个数

    for($j=$i+1;$j < count($a);$j++){

      //看好了,开始判断了,如果前一个数比后一个数大,那么将前一个数存储在一个临时变量中$t,前一个数和后一个数开始互换,那不满足条件的就不用换喽

            if($a[$i] > $a[$j]){

                   $t = $a[$i];     //第一个数存储在临时变量中

                   $a[$i] = $a[$j]; //第一个数的值等于第二个数的值,这就换过来第一个数了

                   $a[$j] = $t;      //第二个数的值等刚刚的临时变量,这下两个数通过一个临时变量交换了位置,那后面的数就依次类推,循环互换,直到最后两个数为止

            }

    }

}

好啦,完了,就这么简单,本次复习完毕!

补充一下,如果是从大到小,if判断那里,大于改成小于,就实现了从大到小喽。

猜你喜欢

转载自blog.csdn.net/hechenhongbo/article/details/102723753
今日推荐