PHP常用的四種排序

2021-07-24 10:19:30 字數 2142 閱讀 2992

所謂排序,就是使一串記錄,按照其中的某個或某些關鍵字的大小,遞增或遞減的排列起來的操作。排序演算法,就是如何使得記錄按照要求排列的方法。排序演算法在很多領域得到相當地重視,尤其是在大量資料的處理方面。乙個優秀的演算法可以節省大量的資源。在各個領域中考慮到資料的各種限制和規範,要得到乙個符合實際的優秀演算法,得經過大量的推理和分析。

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

2,對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數.

3,針對所有的元素重複以上的步驟,除了最後乙個.

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

4 6 5 3 2

4 5 6 3 2

4 5 3 6 2

4 5 3 2 6

4 3 5 2 6

4 3 2 5 6

3 4 2 5 6

3 2 4 5 6

2 3 4 5 6

$arr = array(4,6,5,3,2);

$len = count($arr);

for($i=0;$i

<$len;$i++)

}}print_r($arr);

1,從第乙個元素開始,該元素可以認為已經被排序.

2,取出下乙個元素,在已經排序的元素序列中從後向前掃瞄.

3,如果該元素(已排序)大於新元素,將該元素移到下一位置.

4,重複步驟3,直到找到已排序的元素小於或者等於新元素的位置.

5,將新元素插入到該位置中.

6,重複步驟2 .

4 6 5 2 3

4 5 6 3 2

4 5 3 6 2

4 3 5 6 2

3 4 5 6 2

3 4 5 2 6

3 4 2 5 6

3 2 4 5 6

2 3 4 5 6

$arr = array(2,1,4,3,10,1);

$len = count($arr);

for($i=1,$len=$len;$i

<$len;$i++)

else

}}print_r($arr);

1,首先在未排序序列中找到最小元素,存放到排序序列的起始位置.

2,然後再從剩餘未排序元素中繼續尋找最小元素,放到排序序列末尾.

3,以此類推,直到所有元素均排序完畢.

4 6 5 3 2

2 6 5 3 4

2 3 5 6 4

2 3 4 6 5

2 3 4 5 6

$arr = array(2,1,5,10,5,3);

$len = count($arr);

for($i=0;$i

<$len-1;$i++)

}}print_r($arr);

1,先選取第乙個值.

2,把比中間值小的放到左側,比中間值大的放到右側.

3,然後再分別對左側和右側資料遞迴呼叫1,2步,合併左側、中間值、右側資料.

7  5  9  10  6  4  8

7  5  9  10  6  4  8

left : 5  6  4  7   right : 9 10 8

5  6  4  7  9  10  8

4  5  6  7  8  9  10

function

fast

($arr)

$leftarr = array();

$rightarr = array();

$sum = $arr[0];

for($i=1;$i

$arr);$i++)

else

}$leftarr = fast($leftarr);

$rightarr = fast($rightarr);

return array_merge($leftarr,array($sum),$rightarr);

}$arr = array(2,1,3,10,2,5);

print_r(fast($arr));

PHP四種排序方法

前提 分別用氣泡排序法,快速排序法,選擇排序法,插入排序法將下面陣列中的值按照從小到大的順序進行排序。arr 1,43,54,62,21,66,32,78,36,76,39 1.氣泡排序 思路分析 在要排序的一組數中,對當前還未排好的序列,從前往後對相鄰的兩個數依次進行比較和調整,讓較大的數往下沉,...

PHP 四種排序方法

前提 分別用氣泡排序法,快速排序法,選擇排序法,插入排序法將下面陣列中的值按照從小到大的順序進行排序。arr 1,43,54,62,21,66,32,78,36,76,39 思路分析 在要排序的一組數中,對當前還未排好的序列,從前往後對相鄰的兩個數依次進行比較和調整,讓較大的數往下沉,較小的往上冒。...

四種常用的排序演算法

氣泡排序 法 從大到小排序 依次比較相鄰的兩個元素,通過一次比較把未排序序列中最大 或最小 的元素放置在未排序序列的末尾。public classmaopao for intm a system.out print m intt 0 for inti 0 i a.length 1 i for int...