PHP排序

PHP排序

▲ 概念:所謂排序就是對(duì)一組數(shù)據(jù),按照某個(gè)順序排列的過(guò)程。
排序分兩大類:首先來(lái)介紹一些常用的排序方法,排序是一個(gè)程序員的基本功;

1.交換式排序法 - 冒泡排序法;

  • 通過(guò)對(duì)待排序序列從后向前(從下標(biāo)較大的元素開始),依次比較相鄰元素的排序碼,若發(fā)現(xiàn)逆序則交換,使排序碼較小的元素逐漸從后補(bǔ)移向前部(從下標(biāo)較大的單元移向下標(biāo)較小的單元),就想水底下的氣泡一樣逐漸向上冒。
    • 因?yàn)榕判虻倪^(guò)程中,各元素不斷接近自己的位置,如果一趟比較下來(lái)沒(méi)有進(jìn)行過(guò)交換,就說(shuō)明序列有序,因此要在排序過(guò)程中設(shè)置一個(gè)標(biāo)志flag判斷元素是否進(jìn)行過(guò)交換。從而減少不必要的比較。

    • 冒泡排序法.png
    • 數(shù)組默認(rèn)傳遞的是值,不是地址

2.選擇排序法;

  • 選擇排序也屬于內(nèi)部排序法,是從欲排序的數(shù)據(jù)中,按指定的規(guī)則選出某一元素,經(jīng)過(guò)和其他元素重整,在依原則交換位置后達(dá)到排序的目的。
  • 選擇排序法.png

3.插入排序法;

  • 插入排序法屬于內(nèi)部排序法,是對(duì)于欲排序的元素以插入的方式找尋該元素的適當(dāng)位置,以達(dá)到排序的目的。
  • 排序思想:把N個(gè)待排序的元素看成為一個(gè)有序表和一個(gè)無(wú)序表,開始時(shí)有序表只包含一個(gè)元素,無(wú)序表中包含有N-1個(gè)元素,排序過(guò)程中每次從無(wú)序表中取出第一個(gè)元素,把它的排序碼一次與有序表元素的排序碼進(jìn)行比較,將它插入到有序表中的適當(dāng)位置,使之成為新的有序表。
  • 插入排序法.png

4.快速排序法

  • 該方法用到了遞歸。
  • 快速排序法.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 概述 排序有內(nèi)部排序和外部排序,內(nèi)部排序是數(shù)據(jù)記錄在內(nèi)存中進(jìn)行排序,而外部排序是因排序的數(shù)據(jù)很大,一次不能容納全部...
    蟻前閱讀 5,297評(píng)論 0 52
  • 概述:排序有內(nèi)部排序和外部排序,內(nèi)部排序是數(shù)據(jù)記錄在內(nèi)存中進(jìn)行排序,而外部排序是因排序的數(shù)據(jù)很大,一次不能容納全部...
    每天刷兩次牙閱讀 3,819評(píng)論 0 15
  • 1.插入排序—直接插入排序(Straight Insertion Sort) 基本思想: 將一個(gè)記錄插入到已排序好...
    依依玖玥閱讀 1,347評(píng)論 0 2
  • 概述排序有內(nèi)部排序和外部排序,內(nèi)部排序是數(shù)據(jù)記錄在內(nèi)存中進(jìn)行排序,而外部排序是因排序的數(shù)據(jù)很大,一次不能容納全部的...
    Luc_閱讀 2,370評(píng)論 0 35
  • 一、 單項(xiàng)選擇題(共71題) 對(duì)n個(gè)元素的序列進(jìn)行冒泡排序時(shí),最少的比較次數(shù)是( )。A. n ...
    貝影閱讀 9,416評(píng)論 0 10

友情鏈接更多精彩內(nèi)容