冒泡排序 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;
}
上一篇下一篇

猜你喜欢

热点阅读