在前面的文章中,我們給大家介紹了php演算法系列之《php隨機取一演算法》。今天我們繼續為大家講解常見的php演算法系列的相關知識點,即php氣泡排序演算法。
氣泡排序,相信對於程式設計人員來說並不陌生。氣泡排序演算法簡單來說就是依次比較相鄰的兩個數,然後根據大小做出排序,直至最後兩位數。
那麼之所以稱為「氣泡排序」演算法是因為越大的元素會經由交換慢慢「浮」到數列的頂端(公升序或降序排列),就如同碳酸飲料中二氧化碳的氣泡最終會上浮到頂端一樣。
下面我們就結合具體的**示例,給大家介紹php氣泡排序演算法的實現。(以下是公升序排列,即從小到大排列)
**示例如下:<?php
function maopao($arr){
$len = count($arr);
for($k=0;$k<=$len;$k++)
for($j=$len-1;$j>$k;$j--){
if($arr[$j]
$temp = $arr[$j];
$arr[$j] = $arr[$j-1];
$arr[$j-1] = $temp;
return $arr;
$arr = [2,6,2,8,2,34,5,9,2341,23];
var_dump(maopao($arr));
這裡我們定義了乙個maopao方法,首先我們通過count函式統計出指定陣列的總長度。 然後使用雙重for迴圈語句迴圈遍歷陣列元素並逐一比較,那麼外層for迴圈就是用來控制迴圈輪次;內層for迴圈就是控制每輪的比較次數,並且在每輪比較後選出最大的乙個值放在最後。
注意:這裡我們通過臨時變數$temp介質來存貯$j的值,以此迴圈比較兩個相鄰的元素,並把大的值放在後面。
輸出:array (size=10)
0 => int 2
1 => int 2
2 => int 2
3 => int 5
4 => int 6
5 => int 8
6 => int 9
7 => int 23
8 => int 34
9 => int 2341
總結氣泡排序的演算法原理:對一組資料,比較相鄰資料的大小,將值小資料在前面,值大的資料放在後面。
氣泡排序演算法 一
一.如何衡量乙個排序演算法的優劣 1.演算法的執行效率 2.演算法的內耗消耗 通過空間複雜度來衡量 原地排序 特指空間複雜度為o 1 的排序演算法 3.排序演算法的穩定性 若待排序的集合中存在值相等的元素,經過排序之後,相等元素之間原有的順序是否改變,若未改變,則此稱穩定性排序 需求 如何按照金額排...
演算法一 氣泡排序
先來看一張 所謂氣泡排序就是 假設有一列陣列,判斷其中每個相鄰元素的大小,一但發現第乙個數比第二的數要大 預設從小到大排序 就交換兩個元素的位置,一直把,陣列中最大的元素放置在陣列的最後面 假設的陣列 var list 5,2,1,7,5,3,9,2,7 當元素一直比較到最後,發現自己已經是最後乙個...
氣泡排序 氣泡排序演算法優化
常用的排序演算法主要包括 1 插入排序 直接插入排序 希爾排序 2 交換排序 氣泡排序 快速排序 3 選擇排序 簡單選擇排序 堆排序快速排序 4 歸併排序其中,氣泡排序算是最簡單的一種排序演算法 public class bubble int temp 0 for int i 0 iarr j 1 ...