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