對於php中對陣列的元素進行排序,這個是很經常用到的,之前的專案中也有,而且對於幾種排序我們都是用的是asort arsort 等php原生函式,沒有自己去實現,所以就對一下的幾個函式進行總結,這個會不斷的進行補充,自己也可以好好的複習和總結。
直接上**吧!
<?php
/* * 插入排序(一維陣列)
* 每次將乙個待排序的資料元素,插入到前面已經排好序的數列中的適當的位置,使數列依然有序;直到待排序的資料元素全部插入完成為止。
*/function insertsort($arr)
$count= count($arr);
for($i=1;$i<$count;$i++)}}
return$arr;}
/* * 選擇排序(一維陣列)
* 每一趟從待排序的資料元素中選出最小(最大)的乙個元素,順序放在已排好序的數列的最後,直到全部待排序的資料元素排完。
*/functionselectsort($arr)
$count= count($arr);
for($i=0;$i<$count;$i++)}}
return$arr;}
/*
* 氣泡排序(一維陣列)
* 兩兩比較待排序資料元素的大小,發現兩個資料元素的次序相反即進行交換,直到沒有反序的資料元素為止
*/functionbubblesort($array)
for($i=0;$i<$count;$i++)}}
return$array;}
/* * 快速排序(一維陣列)
* */
functionquicksort($array)
$key= $array[0];
$left_arr= array();
$right_arr= array();
for($i=1;$i$val)
$count= count($arrval);
if($count)
//對值進行排序
for($i=0;$i<$count;$i++)}}
if(count($arrkeymap))
}return$arrreturn;
}} /**
* 使用原生的函式進行陣列按照值進行排列
*/functionarraysortbyval($arr,$keys,$type='asc')
if($type== 'asc')else
reset($keysvalue);
foreach($keysvalue as $k=>$v)
return$new_array;
}
對於下面的2個對於array的值進行排序的方法乙個是自己實現的乙個是使用了原生的php函式的,其實排序對於少量資料一般就單頁的資料量的資料還是可以的,如果涉及到大量的資料的排序,建議可以整合到mysql的基礎類中來進行。
php 快速排序演算法,PHP 快速排序演算法
概念 快速排序演算法是對冒泡演算法的乙個優化。他的思想是先對陣列進行分割,把大的元素數值放到乙個臨時陣列裡,把小的元素數值放到另乙個臨時陣列裡 這個分割的點可以是陣列中的任意乙個元素值,一般用第乙個元素,即 array 0 然後繼續把這兩個臨時陣列重複上面拆分,最後把小的陣列元素和大的陣列元素合併起...
PHP排序演算法
氣泡排序 function bubblesort arr return arr 交換法排序 function exchangesort arr return arr 選擇法排序 function selectsort arr 把當前值放到算好的位置 arr ipos arr i 把當前值換成算好的值...
php 排序演算法
function bubblesort numbers return numbers num array 20,40,60,80,30,70,90,10,50,0 var dump bubblesort num 演算法穩定性氣泡排序就是把小的元素往前調或者把大的元素往後調。比較是相鄰的兩個元素比較,...