PHP关于数组的四种基础排序
2017-08-30 17:13
453 查看
$arr = [4,0,5,-2,1]; //冒泡排序-----------begin-------------------------------- function BubbleSort($arr){ for($i=1;$i<count($arr);$i++){ for($j=0;$j<count($arr)-$i;$j++){ //倒序排列 if($arr[$j]>$arr[$j+1]){ $temp = $arr[$j]; $arr[$j] = $arr[$j+1]; $arr[$j+1] = $temp; } } } return $arr; } echo "<pre>"; echo "<br/>此方法为冒泡排序:"; print_r(BubbleSort($arr));die; //冒泡排序----------------end---------------------------------------- //快速排序---------------begin--------------------------------- function Fast($arr){ if(count($arr)<=1){ return $arr; } $temp = $arr[0]; $left = $right = []; for($i=1;$i<count($arr);$i++){ if($arr[$i]>$temp){ $left[] = $arr[$i]; }else{ $right[] = $arr[$i]; } } // return [$left,$right]; $left = Fast($left); $right = Fast($right); // return $left; // return [$left,$right]; return array_merge($left,[$temp],$right); } echo "<pre>"; //echo "<br/>此方法为快速排序:"; //print_r(Fast($arr)); //快速排序---------------end--------------------------------- //选择排序----------------begin----------------------- //选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 function SelectSort($arr){ for($i=0;$i<count($arr);$i++){ //假设一个最小值 $min = $i; for($j=0;$j<count($arr);$j++){ if($arr[$min]<$arr[$j]){ $temp = $arr[$j]; $arr[$j] = $arr[$min]; $arr[$min] = $temp; // list($arr[$min],$arr[$j]) = [$arr[$j],$arr[$min]]; } } } return $arr; } echo "<pre>"; echo "<br/>此方法为选择排序:"; print_r(SelectSort($arr));
//插入排序法由小到大排列(下标是0的默认是有序数组,然后后面的一次往有序数组中放,依次查询)$data=array(-60,-2,0,6,7,-50,60);// 默认下标为0的一个数是有序的for($i=1;$i<count($data);$i++){//假设插入数的一个下标为$i$addval=$data[$i];$up=$i-1;//现在是前面的大于了后面的while($up>=0 && $data[$up]>$addval){//把前面的那个数往后移一位$data[$up+1]=$data[$up];//如果移一位后它还是后边的大就$up--一个一个的找直到找到为止$up--;//}//把找到的位置给你假设的那个数$data[$up+1]=$addval;}//print_r($data);
相关文章推荐
- PHP四种基础算法详解(冒泡排序、选择排序、插入排序、快速排序)
- 关于常见PHP数组排序方法总结
- PHP基础-数组排序Sort()、Rsort()、Asort()、Ksort()、Arsort()、Krsort()
- php四种基础排序(基础算法)----②选择排序法
- php四种基础排序(基础算法)----③插入排序法
- php关于array_multisort多维数组排序的使用说明
- 关于PHP数组及关联数组排序的函数讲解
- php四种基础排序(基础算法)----④快速排序法
- OC学习之道:关于数组的四种排序
- php -- 四种基础排序:冒泡、选择、插入、快速
- Java基础知识强化12:Java中运用数组的四种排序方法
- 四种常见的数组排序方法(php实现)
- PHP四种基础排序算法--冒泡,直接插入,快速和选择排序
- php关于array_multisort多维数组排序的使用说明
- 关于PHP中对数组的排序
- php四种基础排序(基础算法)----①冒泡排序法
- 入门:PHP编程“数组”的基础知识
- 基于php实现随机合并数组并排序(原排序)
- PHP - 数组的排序函数
- php数组基础