Home > php教程 > php手册 > 排序算法之冒泡算法

排序算法之冒泡算法

WBOY
Release: 2016-06-13 10:58:21
Original
1171 people have browsed it

冒泡算法是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。

 


function BubbleSort($array){

    if (empty($array) || !is_array($array))

        return false;
    $len = count($array)-1;
    for($i = $len; $i > 0; $i-- ){
        for($j = 0; $j             if($array[$j+1]                 $temp = $array[$j];
                $array[$j] = $array[$j+1];
                $array[$j+1] = $temp;
            }
        }
    }
    return $array;
}

 

 

时间复杂度:O(n*n)

 


冒泡算法改进方法一:

如果某一次循环中没有发生任何的交换,说明数据已经排好序了,直接跳出程序。

function BubbleSort2($array)
{


    if (empty($array) || !is_array($array))

    return false;


    $len = count($array);
    $ischange = false;
    for($i = $len - 1 ;$i>0&&!$ischange;$i--)
    {
        $ischange = true;
        for($j=0; $j         {
            if($array[$j+1]             {
                $temp = $array[$j];
                $array[$j] = $array[$j + 1];
                $array[$j + 1] = $temp;
                $ischange=false;
            }
        }
    }
    return $array;
}

 

 

 

 

 

 

 

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template