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

算法篇

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  ·  5年前

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

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 2

循环里可以这样

list($arr[$j], $arr[$j+1]) = [$arr[$j+1], $arr[$j]];
5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!