検索
ホームページphp教程php手册PHP冒泡排序算法实例详解

PHP冒泡排序算法实例详解

Jun 13, 2016 am 09:46 AM
phpバブル存在する学校私たち選別データ時間はいプログラムアルゴリズム教師詳しい説明

在学校时我们老师告诉我们程序数据排序会有很多算法,其实冒泡算法是我们常用的一种排序算法了,下面我来用php实现冒泡排序,下面记录一下。

例1

 代码如下 复制代码

/**
 * 冒泡排序 (一维数组)
 * 两两比较待排序数据元素的大小,发现两个数据元素的次序相反时即进行交换,直到没有反序的数据元素为止
 * 设想被排序的数组R[1..N] 垂直竖立,将每个数据元素看作有重量的气泡,从下往上扫描数组,凡扫描违反原则的轻气泡,就使其向上"漂浮".如此反复进行.
 * 直到最后任何两个气都是轻者在上,重者在下为止.
 */
function bubble_sort($arr) {
        $count = count($arr);
        if($count = 0 || is_array($arr)) {
                echo 'NOT NULL ARRAY';
                return false;
        }
        for($i = 0; $i                 $flag = 1;
                for($j = $count - 1; $j > $i; $j--) {
                        if($arr[$j]                                 $tmp = $arr[$j]; //将数组的元素调换
                                $arr[$j] = $array[$j - 1];
                                $arr[$j - 1] = $tmp;
                                $flag = 0;
                        }
                if (1 == $flag)
                {
                     echo $i,'完成排序';
                     break;
                }
                }
        }
        return $arr;
}

例2

 代码如下 复制代码

//效率排序   
//冒泡排    $arr = array(-1,10,99,89,77,101,3,4,5,22,11,56,32);   
  //冒泡排序法   
$flag = false;   
function bubbleSort($myarr)   
{   
    $_temp = 0;   
    for ($i=0;$i     {   
        for ($j=0;$j         {   
            //如果前面的数比后面的数大,则两个数交换   
            if ($myarr[$j] > $myarr[$j+1])   
            {   
                $_temp = $myarr[$j];   
                $myarr[$j] = $myarr[$j+1];   
                $myarr[$j+1] = $_temp;   
                $flag = true;   
            }   
        }   
        //flage标志位,提升效率用   
        if (!$flag)   
        {   
            echo "已经是有序数组";   
            break;//已经是有序数组,直接退出   
        }   
        $flag = false;   
    }   
    return $myarr;   
}   
//原样输出   
function dump($string)   
{   
    echo "

";    <br>
    print_r($string);    <br>
    echo "
";   
}   
  dump(bubbleSort($arr));   
?>  
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境