php排序演算法 氣泡排序和快速排序

2021-08-01 02:18:58 字數 1010 閱讀 7847

總是對這兩種排序特別迷糊,今天趁活不多,認真看了下,也算對自己有個交代吧

第一:氣泡排序

// 預設從小到大排序

// 若從小到大則第二個引數為true

function bubbling_sort($arr,$state = false)

}else }}

} return $arr;

}

上午寫了冒泡法,整體思路還是很清晰的,但是到快速排序法的時候有點懵,又整理下思路

**如下

function quicksort($array)else

} //把比較小的陣列再一次進行分割

$leftarray = quicksort($leftarray);

$leftarray = $mid;

//把比較大的陣列再一次進行分割

$rightarray = quicksort($rightarray);

//組合兩個結果

return array_merge($leftarray,$rightarray);

}

這裡主要就是先用乙個分割值(首元素),對陣列進行迴圈遍歷,然後把比分割值大的放到乙個陣列中,比分割值小的放到另外乙個陣列中

再遞迴呼叫,最後合併陣列

快速排序相對來說效率較高

還可以使用for迴圈

如下

function quick_sort($array)else

} $left_array = quick_sort($left_array);

$right_array = quick_sort($right_array);

return array_merge($right_array,array($key),$left_array);

}

今天總算把氣泡排序和快速排序給看完了,具體優化公升級什麼的...以後再看吧

PHP常用排序演算法 氣泡排序 快速排序 插入排序

氣泡排序 兩兩交換數值,最小的值在最左邊,就如最輕的氣泡在最上邊。對整列數兩兩交換一次,最小的數在最左邊,每次都能得乙個在剩下的數中的最小 的數,冒 出來的數組成乙個有序區間,剩下的值組成一無序區間,且有序區間中每一元素值都比無序區間的小。快速排序 基準數,左右二個陣列,遞迴呼叫,合併。插入排序 排...

php排序演算法 氣泡排序,快速排序

氣泡排序實現原理 首先將所有待排序的數字放入工作列表中。從列表的第乙個數字到倒數第二個數字,逐個檢查 若某一位上的數字大於他的下一位,則將它與它的下一位交換。重複步驟 直至再也不能交換。實現 複製 如下 氣泡排序 by www.jbxue.com function bubbingsort array...

氣泡排序和快速排序演算法

氣泡排序 原理 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素做同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。針對所有的元素重複以上的步驟,除了最後乙個。持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。實現 public...