画江湖之算法篇 [排序算法] 冒泡排序
算法篇
1 冒泡排序简介
概括:
冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端
特点,就是第一次的时候最大的元素到最后面。
完整代码块:
<?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 分析下 时间复杂度 参考下!
本作品采用《CC 协议》,转载必须注明作者和本文链接
任何编程效率的提升都可以用空间换时间,时间换空间哦~!所以算法很重要
..
循环里可以这样