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;//返回排序完的陣列
}