排序之冒泡排序(优化)-PHP
Posted 巅峰小学生
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了排序之冒泡排序(优化)-PHP相关的知识,希望对你有一定的参考价值。
1 <?php 2 //设置请求头 3 header("content-type:text/html;charset=utf-8"); 4 5 //对冒泡排序进行优化:如果数组在传进来或者遍历一次两次后 6 //就已经排好了 就不再进行排序操作 7 8 //例子: 9 $arr = array(1,2,3,6,4,12,1,85,1,3); //待排序数组 10 // $arr = range(1, 10000); 11 12 function my_bubble_sort(&$arr){ 13 var_dump($arr); 14 15 $arr_count = count($arr); 16 17 //比较次数 18 for($i=0; $i<$arr_count - 1; $i++){ 19 20 for($j=0; $j<$arr_count - $i - 1; $j++){ 21 22 //大向右移动,小向左移动(从大到小只需要该一下符号) 23 if($arr[$j] > $arr[$j+1]){ 24 //交换操作 25 $temp = $arr[$j]; 26 $arr[$j] = $arr[$j + 1]; 27 $arr[$j + 1] = $temp; 28 $flag = 1; 29 } 30 } 31 32 if(!$flag){ 33 //如果$flag=0表示 小for循环没有进行过1次数据交换(没有进行过一次比较就可以说明该数组已经排序好) 34 //也就说不需要进行排序 35 break; 36 }else{ 37 $flag = 0; 38 } 39 } 40 41 var_dump($arr); 42 } 43 44 45 46 date_default_timezone_set (‘PRC‘); 47 48 // echo "start:" . date(‘H:i:s‘) . ‘<br>‘; 49 my_bubble_sort($arr); 50 // echo "end:" . date(‘H:i:s‘); 51 52 ?>
以上是关于排序之冒泡排序(优化)-PHP的主要内容,如果未能解决你的问题,请参考以下文章