PHP实现常见排序
<?
//插入排序(一維數(shù)組)
function?insert_sort($arr){
????$count?=?count($arr);
????for($i=1;?$i<$count;?$i++){
????????$tmp?=?$arr[$i];
????????$j?=?$i?-?1;
????????while($arr[$j]?>?$tmp){
????????????$arr[$j+1]?=?$arr[$j];
????????????$arr[$j]?=?$tmp;
????????????$j--;
????????}
????}
????return?$arr;
}
//選擇排序(一維數(shù)組)
function?select_sort($arr){
????$count?=?count($arr);
????for($i=0;?$i<$count;?$i++){
????????$k?=?$i;
????????for($j=$i+1;?$j<$count;?$j++){
????????????if?($arr[$k]?>?$arr[$j])
????????????????$k?=?$j;
????????????if?($k?!=?$i){
????????????????$tmp?=?$arr[$i];
????????????????$arr[$i]?=?$arr[$k];
????????????????$arr[$k]?=?$tmp;
????????????}
????????}
????}
????return?$arr;
}
//冒泡排序(一維數(shù)組)?
function?bubble_sort($array){?
????$count?=?count($array);?
????if?($count?<=?0)?return?false;?
????
????for($i=0;?$i<$count;?$i++){?
????????for($j=$count-1;?$j>$i;?$j--){?
????????????if?($array[$j]?<?$array[$j-1]){?
????????????????$tmp?=?$array[$j];?
????????????????$array[$j]?=?$array[$j-1];?
????????????????$array[$j-1]?=?$tmp;?
????????????}?
????????}?
????}?
????return?$array;?
}?
//快速排序(一維數(shù)組)?
function?quick_sort($array){?
????if?(count($array)?<=?1)?return?$array;?
????$key?=?$array[0];?
????$left_arr?=?array();?
????$right_arr?=?array();?
????for?($i=1;?$i<count($array);?$i++){?
????????if?($array[$i]?<=?$key)?
????????????$left_arr[]?=?$array[$i];?
????????else?
????????????$right_arr[]?=?$array[$i];?
????}?
????$left_arr?=?quick_sort($left_arr);?
????$right_arr?=?quick_sort($right_arr);?
????
????return?array_merge($left_arr,?array($key),?$right_arr);?
}?
?>
總結
- 上一篇: DataGrid动态绑定模板列
- 下一篇: 如何实现文章中文字的打字效果