基础之冒泡排序算法

冒泡排序是相对比较简单、常用的算法,同时在面试中也是最常被问到的问题。自认能力不够,不能有更深的理解,下面就把一些资料中的内容记录下来。

冒泡排序

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

冒泡排序对 n 个项目需要 O(n2) 的比较次数,且可以原地排序。尽管这个算法是最简单了解和实现的排序算法之一,但它对于包含大量的元素的数列排序是很没有效率的。

冒泡排序算法的运作如下:

◆比较相邻的元素。如果第一个比第二个大,就交换他们两个。

◆对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。

◆针对所有的元素重复以上的步骤,除了最后一个。

◆持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

以上是维基百科中的介绍,可以看到,原理并不复杂。但是在数据量大时,不是一个很好的选择。

动图演示:

buffsort.gif

实例:

function bubbleSort($arr)
{
    if(!is_array($arr))
    {
        return false;
    }

    $count = count($arr);

    if($count < 2)
    {
        return $arr;
    }

    for($i = 0; $i < $count; $i++)
    {
        for($k = $i + 1; $k < $count; $k++)
        {
            // $arr[$i] 和 $arr[$k] 是相邻的两个值
            if($arr[$i] > $arr[$k])
            {
               //前者大于后者,调换位置
               //如果想要按照从大到小进行排序,改为 $arr[$i] < $arr[$k]

                $temp    = $arr[$i];
                $arr[$i] = $arr[$k];
                $arr[$k] = $temp;
            }
        }
    }

    return $arr;
}

$arr = [33, 24, 8];

echo "<pre>";
print_r(bubbleSort($arr));




本文转载自:http://www.php.cn/php-weizijiaocheng-414751.html






祝群里的男同胞:

新年快乐万事如意诸事顺利心想事成天天开心幸福美满阖家欢乐福星高照喜上眉梢欢天喜地财运亨通吉祥如意工作顺利龙马精神寿比南山步步高升福如东海花好月圆神采奕奕飞黄腾达升官发财安居乐业龙凤呈祥四海增辉鹏程万里太平有象幸福无疆新年快乐万事如意诸事顺利心想事成天天开心幸福美满阖家欢乐福星高照喜上眉梢欢天喜地财运亨通吉祥如意工作顺利龙马精神寿比南山步步高升福如东海花好月圆神采奕奕飞黄腾达升官发财安居乐业龙凤呈祥四海增辉鹏程万里太平有象幸福无疆新年快乐万事如意诸事顺利心想事成天天开心幸福美满阖家欢乐福星高照喜上眉梢欢天喜地财运亨通吉祥如意工作顺利龙马精神寿比南山步步高升福如东海花好月圆神采奕奕飞黄腾达升官发财安居乐业龙凤呈祥四海增辉鹏程万里太平有象幸福无疆新年快乐万事如意诸事顺利心想事成天天开心幸福美满阖家欢乐福星高照喜上眉梢欢天喜地财运亨通吉祥如意工作顺利龙马精神寿比南山步步高升福如东海花好月圆神采奕奕飞黄腾达升官发财安居乐业龙凤呈祥四海增辉鹏程万里太平有象幸福无疆


祝群里的妹子:

多喝热水


/*************************************/


祝群里的小哥哥:

新年快乐万事如意诸事顺利心想事成天天开心幸福美满阖家欢乐福星高照喜上眉梢欢天喜地财运亨通吉祥如意工作顺利龙马精神寿比南山步步高升福如东海花好月圆神采奕奕飞黄腾达升官发财安居乐业龙凤呈祥四海增辉鹏程万里太平有象幸福无疆


祝群里的小姐姐:

多喝热水



/*************************************/

祝群里的仙女们:

落雁沉鱼 兰质蕙心 明眸皓齿 靡颜腻理 清词丽句 清辞丽曲 琪花瑶草 曲眉丰颊 螓首蛾眉 水木清华 爽心悦目 天生丽质 天香国色 我见犹怜 宛转蛾眉 霞光万道 小家碧玉 杏脸桃腮 煦色韶光 杏腮桃脸 雄伟壮观 香消玉殒 杏雨梨云 涎玉沫珠 妍蚩好恶 鱼沉雁落 宜嗔宜喜 旖旎风光 远山芙蓉 艳色绝世 余霞成绮 宜喜宜嗔 瘗玉埋香 艳紫妖红 朱唇皓齿 左家娇女 章台杨柳 阿娇金屋 闭月羞花 逞娇呈美 春暖花香 春色满园 春深似海 彩云易散 姹紫嫣红 斗美夸丽 尽态极妍 斗艳争辉 蛾眉皓齿飞阁流丹 国色天香 胡天胡帝 花颜月貌 绝色佳人天生丽质 慧质兰心 秀外慧中 暗香盈袖 闭月羞花 沉鱼落雁 倾国倾城 温婉娴淑 千娇百媚 仪态万千 美艳绝世 国色天香 花容月貌 明目皓齿 淡扫峨眉 清艳脱 俗香肌玉肤 清丽绝俗 仪态万端 婉风流转 美撼凡尘 聘婷秀雅 娥娜翩跹 俏丽多姿 如花似月 风姿卓越 顾盼流转 清丝纠缠 举步轻摇 美若天仙 美愈天人 清秀高雅 艳冠群芳 剪水双瞳 美艳绝伦 神仙玉骨 楚楚动人 貌赛西施 姿容绝代 如花似玉 窈窕淑女 气质高雅 美丽四射 樱桃小口 静若处子 动若脱兔 小鸟宜人 善解人意 明眸善睐 娇艳妩媚 玲珑剔透 玉指如葱 肤如凝脂 眉如新月 秋波流转 樱桃小口 粉妆玉琢 桃腮杏脸 亭亭玉立 楚楚动人 贤良淑德 秀色可餐 水灵秀气 小家碧玉 完美无暇 娇羞可爱 婀娜多姿 美丽动人 人面桃花 柳眉杏眼 温文尔雅 明艳动人 天生尤物 芙蓉如面 娇艳惊人 冠压群芳 风华绝代 绝代佳人 一代佳人 一代容华 绝色美人 月里嫦娥 华如桃李 桃羞杏让


祝群里的男的:

新年快乐


声明:禁止任何非法用途使用,凡因违规使用而引起的任何法律纠纷,本站概不负责。

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

精彩评论

全部回复12人评论7,777人参与