冒泡排序原理
原理描述:
一次比較倆個相鄰的元素,大的元素後移,小的元素前移(交換位置)。直到找出最大的元素。就像是氣泡一樣,大的向下沉,小的向上冒。
流程:
有一個無序數組 $arr = [8, 9, 3, 6, 1, 4]

- 外層循環要元素數 - 1次。負責找出最大值。
- 内層循環逐層遞減一次。負責倆倆相比較,交換元素位置。
代碼:
快速排序原理(遞歸)
從數組中取第一個值作為參照物,比這個值小的放在左邊,比這個值大的放在右邊,這樣就會有倆個新的數組,遞歸處理倆個數組,然後左邊,參照物,右邊合并。注意:有遞歸就要找到遞歸出口,不然就會一直遞歸下去。
用文字叙述流程太麻煩,就從網上找了一個圖檔,過程很清晰。
代碼:
插入排序
将要排序的數組分成倆個部分,取數組第一個元素放有序集合中,剩下的放到無序集合中。将需要排序的數,與前面已經排好序的資料從後往前進行比較,直到找到小于或者等于它的數,使其插入到相應的位置。
我的記憶方法:
假設有倆個箱子,第一個箱子是透明并且是空的,要用來裝有序元素,第二個箱子是不透明并且是滿的,裝無序元素。(其實裝什麼都行,你喜歡的讓你容易記住的最好)。
1.第一步:在不透明箱子裡随便拿一個元素,直接扔到透明的箱子裡
2.第二步:再從不透明的箱子裡拿出一個元素,放進透明箱子裡前,做比較。如果大就放後面,如果小就放前面。
3.重複第二步,但是我們每次需要比較的次數增加了,因為透明箱子裡元素多了,直到找到合适的位置。
選擇排序
每次一次從數組中取出最小元素或者最大元素,放到指定位置。
第一步:給第一個元素一個聖火令,和後面到每個元素比較,(我是取最小元素)。遇到比它小到元素就把這個聖火令給它,知道把聖火令交給最小元素手裡。
第二步:交換位置,聖火令交給第二哥元素,重複第一步。
上就是PHP 排序算法原理及總結的詳細内容,更多請關注php技術交流群:
link