您的位置:首页 > 编程语言 > PHP开发

PHP学习笔记十二【数组排序】

2014-08-27 23:58 176 查看
<?php
$arr=array(0,5,-1);
$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;
}
}
}
foreach($arr as $val)
{
echo "<br>".$val;
}
selectSort($arr);
print_r($arr);
InsertSort($arr);
print_r($arr);

//选择排序
function selectSort(&$arr)
{
$temp=0;
for($i=0;$i<=count($arr)-1;$i++)
{
//假设$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;
}

}
}

//插入排序
function InsertSort(&$arr)
{
//先默认下标为0这个数已经有序
for($i=0;$i<count($arr);$i++)
{
//$insertVal是准备插入的数
$insertVal=$arr[$i];
//准备先和$insertIndex比较
$inserIndex=$i-1;
//如果这个条件满足,说明,我们还没有找到合适的位置
while($inserIndex>0&&$insertVal<$arr[$inserIndex])
{
//同时把数后移
$arr[$inserIndex+1]=$arr[$inserIndex];
$inserIndex--;

}
//插入(这时就给$insertVal找到适当的位置)
$arr[$inserIndex+1]=$insertVal;
}
}
?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: