美文网首页
冒泡排序算法(1)

冒泡排序算法(1)

作者: 楚江云 | 来源:发表于2018-09-02 23:08 被阅读13次

冒泡排序 是一种比较简单的排序算法,其本质是相邻的两个元素进行大小比较,最终使得所有的元素形成从小到大或者从大到小的排列

算法原理

  1. 比较相邻的元素,不相等,就进行交换
  2. 对所有的相邻元素进行第1步的操作,第一轮比较下来,最大(小) 的元素排在了最尾部
  3. 相邻的元素比较的次数在上一轮比较的基础上减去1次,进入下一轮的比较,,重复第1,2步
  4. 最大(小),第二大(小),第三大(小)......的元素依次会排到元素的最尾部
  5. 当比较次数为1的时候,执行完第1步,所有比较结束

冒泡排序是一种稳定的排序算法

代码示例

<?php

function bubbing_sort(array $arr)
{
    // 统计需要排序的元素个数
    $len = count($arr);
    // 控制进行几轮比较
    for($j = 1; $j < $len ;$j++)
    {
        // 相邻的一组元素,两两之间需要比较的次数
        for($i = 0 ; $i < $len-$j ;$i++)
        {
            // 元素的排列方向 从小到大或者从大到小
            if($arr[$i] > $arr[$i+1])
            {
                // 相邻的两个元素大小比较符合条件,两两交换位置
                $temp = $arr[$i];
                $arr[$i] = $arr[$i+1];
                $arr[$i+1] = $temp ;
            }
        }
    }
    return $arr ;
}
$arr = [99,10,88,23,13,67];
var_dump(bubbing_sort($arr));
// output
/*array (size=6)
  0 => int 10
  1 => int 13
  2 => int 23
  3 => int 67
  4 => int 88
  5 => int 99*/

冒泡排序的核心是相邻元素之间的两两比较,比较完一轮,还有元素没有比较完,进入下一轮的比较,直到所有的元素都按照一定的顺序呈现出来.

PS : 要是没有直观的感受,可以裁剪出几个小纸片,每个小纸片上写上数字(相当于一个元素),将这些小纸片放在一块按照冒泡排序实现思路进行比较.

相关文章

  • 算法:冒泡排序

    本文内容:1、什么是冒泡排序?2、冒泡排序的 C/OC 实现与算法分析。 算法总目录:算法? 1、什么是冒泡排序?...

  • 算法-冒泡排序

    算 法:冒泡排序算法时间复杂度: 冒泡排序算法概述 冒泡排序伪代码 冒泡排序实现 冒泡排序算法概述 冒泡排...

  • 经典排序算法总结

    经典排序算法集锦 冒泡法 排序算法入门之冒泡排序 排序算法入门之冒泡排序优化

  • 七大排序算法之冒泡排序

    七大排序算法之冒泡排序 @(算法笔记)[排序算法, 冒泡排序, C++实现] 冒泡排序介绍 冒泡排序是七大排序算法...

  • 基本算法——快速排序算法

    快速排序算法是对冒泡算法的改进。所以我们首先来简单的谈谈冒泡算法。 1.冒泡算法 冒泡排序(Bubble S...

  • 2022-03-01

    1.排序算法: 到底什么是排序?-它是排列列表中项目顺序的算法。 重要的排序算法—— 冒泡排序:冒泡排序是最基本的...

  • 前端算法学习-第一篇

    冒泡排序算法 冒泡排序算法是最慢的排序算法之一,也是最容易实现的排序算法。之所以叫冒泡排序是因为使用这种算法排序时...

  • 2019-08-11

    Javascript中常用几种基础算法 1 排序-冒泡排序 //冒泡排序 function bubbleSort...

  • iOS算法总结-冒泡排序

    iOS算法总结-冒泡排序 iOS算法总结-冒泡排序

  • 冒泡排序算法,选择排序算法,快速排序算法的OC实现

    1.冒泡排序算法

网友评论

      本文标题:冒泡排序算法(1)

      本文链接:https://www.haomeiwen.com/subject/goyvwftx.html