简单:
$arr=array(0,8,-2) 无序 从小到大排列
外层循环
$temp= 0;
for($i=0;$i<count($arr)-1;i++){
for($j=0;$j<count($arr)-1-$i;$j++){
if($arr[$j]>$arr[$j+1]){
$temp = $arr[$j];
$arr[$j] = $arr[$j+1];
$arr[$j+1]= $temp;
}
}
}
里层循环找出一个最大数
2.选择排序
每次找到最小值,依次排到前面
function selectSort(&$arr){
for($i=0;$i<count($arr)-1;$i++){
$minVal = $arr[$i];
//记录最小值的索引
$minIndex = $i;
for($j=$i+1;$j<count($arr);$j++){
if($minVal>$arr[$j]){
$minVal = $arr[$j];
$minIndex = $j;
}
}
//交换
$temp =$arr[$i];
$arr[i] = $arr[$minIndex];
$arr[$minIndex] = $temp;
}
}
3.插入排序
一个有序表,一个无序表
有1一个数是有序,其他n-1个数无序 -1,-2,89,90
-2,-1 89,90
往有序数列里不停的插入一个数
function insertSort(&$arr){
//默认下标0;这个数有序
for($i=1;$i<count($arr);$++){
//$insertVal 是准备要插入的数
$insertVal = $arr[$i];
//准备先和$insertIndex比较
$insertIndex = $i-1;
//如果条件满足,说明还没找到适当的位置插入
while($insertIndex>=0&& $insertVal<$arry[$insertIndex]){
//同时把数后移
$arr[$insertIndex+1] =$arr[$insertIndex]
$insertIndex--;
}
//插入找到适当位置
$arr[$insertIndex+1] = $insertVal;
}
}
4.快速排序
找中间数据
二分查找 必须有序
function binarySearch($arr,$findVal,$leftIndex $rightIndex){
$middleIndex = round($rightIndex+$leftIndex)/2);
if($rightIndex<$leftIndex){
echo '找不到'
return;
}
//如果大于,向后找
if($findVal>$arr[$middleIndex]){
binarySearch($arr,$findVal,$middleIndex+1,$rightIndex) ;
}else{
//小于则向前找
binarySearch($arr,$findVal,$leftIndex,$middleIndex-1) ;
}else{
echo '找到';
}
}
分享到:
相关推荐
php 冒泡排序 快速排序 排序
php优化版本的冒泡排序算法
php的冒泡小程序 网上有很多例子 但是我这个是有很详细的注释的!
php冒泡排序
面试者常碰到的问题,如果正在找工作一定要看看呦,不过没答案
主要介绍了浅谈php冒泡排序,需要的朋友可以参考下
用php实现冒泡排序用php实现冒泡排序用php实现冒泡排序用php实现冒泡排序用php实现冒泡排序用php实现冒泡排序
本篇文章是对PHP 冒泡排序 二分查找 顺序查找 二维数组排序算法函数进行了详细的分析介绍,需要的朋友参考下
复制代码 代码如下: $a=array(’11’,’2′,’13’,’... 您可能感兴趣的文章:php数组冒泡排序算法实例php冒泡排序与快速排序实例详解又一个PHP实现的冒泡排序算法分享php冒泡排序、快速排序、快速查找、二维数组去重实
本篇文章是对php中的冒泡排序算法进行了详细的分析介绍,需要的朋友参考下
主要介绍了php冒泡排序、快速排序、快速查找、二维数组去重实例分享,需要的朋友可以参考下
主要介绍了PHP简单实现冒泡排序的方法,结合实例形式分析了php冒泡排序的实现与使用技巧,需要的朋友可以参考下
php $arr = array(345,4,17,6,52,16,58,69,32,8,234); $n = count($arr); for($i=1;$i<$n;$i++){ //其中的为什么$n-1是因为数组是从0开始计算的 //接下来是第一次内循环 for($j=$n-1;$j>=$i;$j–) { //如果$arr...
本文实例分析了php冒泡排序与快速排序算法。分享给大家供大家参考,具体如下: $a=array('3','8','1','4','11','7'); print_r($a); $len = count($a); //从小到大 for($i=1;$i<$len;$i++) { for($j=$len-1;$j>=$...
php代码-算法-排序-冒泡排序
冒泡排序算法是很多学习计算机的人必修的一种最基础的算法。今天在网上找了很多代码,发现有c++的,有Ruby的,有Java的等等,就是很少找到php的,于是我就自己写了一下php的冒泡排序算法,希望对大家有所帮助。