php 陣列的相關函式及排序演算法

2022-08-03 10:24:12 字數 2663 閱讀 1532

1、排序函式

都是按照ascii碼比較,可以進行英文比較

2、指標函式

3、其他函式

1、氣泡排序

氣泡排序(bubble sort),是一種電腦科學領域的較簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的正作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。

氣泡排序的演算法思路:

1)比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。

2)對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。針對所有的元素重複以上的步驟,除了最後乙個。

3)持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。

2、選擇排序

選擇排序(selection sort)是一種簡單直觀的排序演算法。它的工作原理是每一次從待排序的資料元素中選出最小(或最大)的乙個元素,存放在序列的起始位置,直到全部待排序的資料元素排完。選擇排序是不穩定的排序方法(比如序列[5,5,3]第一次就將第乙個[5]與[3]交換,導致第乙個5挪動到第二個5後面)。

選擇排序的演算法思路:

1)假設第乙個元素為最小元素,記下下標。

2)尋找右側剩餘的元素,如果有更小的,重新記下最新的下標。

3)如果有新的最小的,交換兩個元素。

4)往右重複以上步驟,直到元素本身是最後乙個。

3、插入排序

插入排序(insert sort),插入排序的基本操作就是將乙個資料插入到已經排好序的有序資料中,從而得到乙個新的、個數加一的有序資料,演算法適用於少量資料的排序,是穩定的排序方法。

插入演算法把要排序的陣列分成兩部分:第一部分包含了這個陣列的所有元素,但將最後乙個元素除外(讓陣列多乙個空間才有插入的位器),而第二部分就只包含這乙個元素(即待插入元素)。在第一部分排序完成後,再將這個最後元素插入到已排好序的第一部分中。

插入排序的基本思想是:每步將乙個待排序的紀錄,按其關鍵碼值的大小插入前面已經排序的檔案中適當位置上,直到全部插入完為止。

插入排序的演算法思路:

1)設定監視哨r[o],將待插入紀錄的值賦值給r[o];

2)設定開始查詢的位置j;

3)在陣列中進行搜尋,搜尋蟲將第j企紀錄後移,直r[0].key>=r[j].key為止;

4)將r[o]插入r[j+1]的位置上。

1、認定第乙個元素已經排好序;

2、取出第二個元素,作為待插入資料;

3、與已經排好序的陣列的最右側元素開始進行比較;

4、如果後面的小於前面的:說明前面已經排好序的那個陣列元素不在對的位置(向後移乙個),然後讓新的元素填充進去(繼賣向前比:高階);

5、重複前面的步驟:直到當前元素插入到對位置;

6、重複以上步驟,直到所有的陣列元素都插入到對的位置。

4、快速排序

快速排序(quicksort)是對氣泡排序的一種改進。通過一趟排序將要排序的資料分割成獨立的兩部分,其中一部分的所有資料都比另外一部分的所有資料都要小,然後再按此方法對這兩部分資料分別進行快速排序,整個排序過程可以遞迴進行,以此達到整個資料變成有序序列。(遞迴)

設要排序的陣列是a[o]……a[n-1],首先任意選取乙個資料(通常選用陣列的第乙個數)作為關鍵資料,然後將所有比它小的數都放到它前面,所有比它大的數都放到它後面,這個過程稱為一趟快速排序。值得注意的是,快速排序不是一種穩定的排序演算法,也就是說,多個相同的值的相對位置也許會在演算法結束時產生變動。

快速排序的演算法是:

1)從陣列中選出乙個元素〈通常第乙個),作為參照物件。

2)定義兩個陣列,將目標陣列中剩餘的元素與參照元素挨個比較:小的放到乙個陣列,大的放到另外乙個陣列。

3)第二步執行完之後,前後的陣列順序不確定,但是確定了自己的位置。

4)將得到的小陣列按照第1到第3部重複操作《子問題》。

5)回溯最小陣列(乙個元素)。

$arr=array(1,6,3,4,9,2,7,8);

php陣列相關的函式

具體使用看php手冊 排序函式 按照ascll比較 sort arr 順序排序 下標重排 rsort arr 逆序排序 asort arr 順序排序 保留下標關係 arsort arr 逆序排序 ksort arr 順序排序 按照鍵名 下標 排序 krsort arr 逆序排序 shuffle ar...

PHP陣列的相關函式

l explode 使用乙個字串分割另乙個字串 l implode 將乙個一維陣列的值轉化為字串 l split 用正規表示式將字串分割到陣列中 l preg split 通過乙個正規表示式分隔字串 l unset 釋放給定的變數 l is array 檢測變數是否是陣列 l array chang...

PHP陣列的排序函式

介紹 sort 按照字母或數字公升序對陣列中的元素進行排序,rsort作用則相反 char array b a d sort cars numbers array 3,5,1,22,11 sort numbers asort 根據值對關聯陣列進行公升序排序,arsort作用相反 age array ...