PHP排序
▲ 概念:所謂排序就是對一組數(shù)據(jù),按照某個順序排列的過程。
排序分兩大類:首先來介紹一些常用的排序方法,排序是一個程序員的基本功;
1.交換式排序法 - 冒泡排序法辩尊;
- 通過對待排序序列從后向前(從下標(biāo)較大的元素開始),依次比較相鄰元素的排序碼康辑,若發(fā)現(xiàn)逆序則交換摄欲,使排序碼較小的元素逐漸從后補(bǔ)移向前部(從下標(biāo)較大的單元移向下標(biāo)較小的單元),就想水底下的氣泡一樣逐漸向上冒疮薇。
因為排序的過程中蒿涎,各元素不斷接近自己的位置,如果一趟比較下來沒有進(jìn)行過交換惦辛,就說明序列有序劳秋,因此要在排序過程中設(shè)置一個標(biāo)志flag判斷元素是否進(jìn)行過交換。從而減少不必要的比較。
- 冒泡排序法.png
數(shù)組默認(rèn)傳遞的是值玻淑,不是地址
2.選擇排序法嗽冒;
- 選擇排序也屬于內(nèi)部排序法,是從欲排序的數(shù)據(jù)中补履,按指定的規(guī)則選出某一元素添坊,經(jīng)過和其他元素重整,在依原則交換位置后達(dá)到排序的目的箫锤。
- 選擇排序法.png
3.插入排序法贬蛙;
- 插入排序法屬于內(nèi)部排序法,是對于欲排序的元素以插入的方式找尋該元素的適當(dāng)位置谚攒,以達(dá)到排序的目的阳准。
- 排序思想:把N個待排序的元素看成為一個有序表和一個無序表,開始時有序表只包含一個元素馏臭,無序表中包含有N-1個元素野蝇,排序過程中每次從無序表中取出第一個元素,把它的排序碼一次與有序表元素的排序碼進(jìn)行比較括儒,將它插入到有序表中的適當(dāng)位置绕沈,使之成為新的有序表。
- 插入排序法.png
4.快速排序法
- 該方法用到了遞歸帮寻。
- 快速排序法.png