数组排序算法.
冒泡排序
冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。
它重复地走访边要排序的数列,-次比较两个元素,如果他们的顺序错误就把他们交换过来。
走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成
冒泡排序的算法思路:。
1)比较相邻的元素。 如果第一一个比第二个大,就交换他们两个。。
2)对每一对相邻元素作同样的工作,从开始第-对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
3)针对所有的元素重以上的步骤,除了最后一个。。
4)持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
首先我们先定义一个数组,然后我们想办法把最大的值放在最右边去,我们使用for循环,我们以代码为例,如下:
<?php //数组排序算法:冒泡排序$arr = array(1,4,2,9,7,5,8);//想办法将最大的值放到最右边去for($j =0,$len = count($arr); $j < $len - 1;$j++){//判断:两两相比if($arr[$j] > $arr[$j+1]){//左边比右边大:交换$temp = $arr[$j];$arr[$j] = $arr[$j+1];$arr[$j+1] = $temp; }}echo '<pre>';print_r($arr);
运行结果如下:
那么此时我们该如何让上述代码在运行一次,我们让下面可以每次找出最大值的代码重复执行。
<?php //数组排序算法:冒泡排序$arr = array(1,4,2,9,7,5,8);for($i=0,$len = count($arr);$i < $len;$i++){//想办法将最大的值放到最右边去for($j =0,$len = count($arr); $j < $len - 1;$j++){//判断:两两相比if($arr[$j] > $arr[$j+1]){//左边比右边大:交换$temp = $arr[$j];$arr[$j] = $arr[$j+1];$arr[$j+1] = $temp; }}echo '<pre>';print_r($arr);}
运行结果如下:
推荐学习:《PHP视频教程》
以上就是在PHP中如何使用冒泡排序?的知识。速戳>>知识兔学习精品课!