冒泡排序 php
2019-10-30 本文已影响0人
WayneJoe
冒泡排序是比较简单的一种排序算法
时间复杂度 O(n²)
一、排序原理
核心是: 双层循环,逐个对比
1、第一层循环
是根据数组长度,来决定此数组需要比较的轮次
不参与实际计算
2、第二层循环
每轮次具体的比较逻辑,每轮比较数=数组count值(可优化)
依次按下标取出n 和 n+1 两个值
然后根据两值大小来判断是否交换下标
二、PHP代码示例
function BubbleSort(){
$arr = array();
$len = count($arr );
for($i=0;$i<$len;$i++){
$flag = false;
for($j=$len-1;$j>0;$i--){
if($arr[$j]<$arr[$j-1]){
$x= $arr[$j];
$arr[$j]=$arr[$j-1];
$arr[$j-1]=$arr[$j];
$flag = true;
}
}
if(!$flag) break;//如果未发生交换
}
return $arr;
}