画江湖之算法篇 [排序算法] 冒泡排序

算法篇#

1 冒泡排序简介#

概括:

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

  • 特点,就是第一次的时候最大的元素到最后面。
    file

完整代码块

<?php

class Sort{

    public static function bubble($arr){
        $size =  count($arr);
        for ($i=0; $i < $size ; $i++) {
            //第一次肯定把最大的移到最后,所以$j<$size-1-$i
            for ($j=0; $j < $size-1-$i ; $j++) {
                if($arr[$j]>$arr[$j+1]){
                    $tmp = $arr[$j];
                    $arr[$j]=$arr[$j+1];
                    $arr[$j+1]=$tmp;
                }
            }
        }
        return $arr;
    }
}

$arr = [9,4,6,8,17,12,44,12,56,71,21,19,81,99];

echo "<pre>";
// print_r(Sort::bubble($arr));

2 分析代码块 具体分析到代码注释哦 ~#

冒泡

public static function bubble($arr){
        $size =  count($arr);//先取出这个数组的大小
        for ($i=0; $i < $size ; $i++) {
            //第一次肯定把最大的移到最后,所以$j<$size-1-$i 小伙伴们 这是一个规律
            for ($j=0; $j < $size-1-$i ; $j++) {//内部循环$size-1-$i (数组的总长度减去1再减去外部循环到第几次)
                if($arr[$j]>$arr[$j+1]){//判断如果当前的值大于他后面的值
                    $tmp = $arr[$j];//申明一个临时变量 存储当前的值
                    $arr[$j]=$arr[$j+1];//把当前的值替换成下一个值
                    $arr[$j+1]=$tmp;//把下一个值替换成临时变量 也就是当前的值
                }
            }
        }
        return $arr;//返回排序完的数组
    }

3 分析下 时间复杂度 参考下!#

file

本作品采用《CC 协议》,转载必须注明作者和本文链接
附言 1  ·  6年前

任何编程效率的提升都可以用空间换时间,时间换空间哦~!所以算法很重要

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。