本文主要是介绍php4种排序,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
arr=array(1,43,54,62,21,32,36,76,39);functionbubblesort( arr){
len=count( arr);
//冒泡的轮数
//每轮需要冒泡的次数
for( k=1; k< len; k++) {
for( i=0; i< len− k;i++){
if(arr[ i]> arr[i+1]){tem= arr[ i+1];
arr[ i+1]= arr[ i];
arr[ i]=$tem;
}
}
}
return arr;
}
//选择排序
function selectsort(arr){
len=count( arr);
for( i=0; i< len−1; i++){
//先假定最小数
p= i;
///第i次排序时,已经进行了i次大循环,因此已经排好了i个元素
//已排好序的元素0,,…,i-2,i-1
// 待排元素为i,i+1,…,len-1
for( j= i+1; j< len; j++)if($arr[$p]>$arr[$j])$p=$j;//已经确定了当前的最小值的位置,保存到 p中。如果发现最小值的位置与当前假设的位置$i不同,则位置互换即可。
if($p!=$i){$tmp = $arr[$p];$arr[$p] = $arr[$i];$arr[$i] = $tmp;} }return $arr;
} /插入法排序在要排序的一组数中,假设前面的数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。/
function insertsort(arr){len=count( arr);for( i=1; i< len; i++)$tem=$arr[$i];for($j=$i−1;$j>0;$j–)if($tem<$arr[$j])$arr[$j+1]=$arr[$j];$arr[$j]=$tem;elsebreak;return arr;
}
/快速排序选择一个基准元素,通常选择第一个元素或者最后一个元素。通过一趟扫描,将待排序列分成两部分,一部分比基准元素小,一部分大于等于基准元素。此时基准元素在其排好序后的正确位置,然后再用同样的方法递归地排序划分的两部分。/
function quickSort( arr)//先判断是否需要继续进行$length=count($arr);if($length<=1)return$arr;//选择第一个元素作为基准$basenum=$arr[0];//遍历除了标尺外的所有元素,按照大小关系放入两个数组内//初始化两个数组$leftarray=array();//小于基准的$rightarray=array();//大于基准的for($i=1;$i<$length;$i++)if($basenum>$arr[$i])//放入左边数组$leftarray[]=$arr[$i];else//放入右边$rightarray[]=$arr[$i];//再分别对左边和右边的数组进行相同的排序处理方式递归调用这个函数$leftarray=quickSort($leftarray);$rightarray=quickSort($rightarray);//合并returnarraymerge($leftarray,array($basenum),$rightarray);printr(quickSort( arr));
这篇关于php4种排序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!