php的排序问题

jom258 2013-09-15 10:55:31
不想说什么!!直接上代码!!不对或失误地方,望大家指正!!谢谢!!
<?php
//冒泡法排序
function Mypop(&$arr){
$temp = 0;
$flag = false;
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;
$flag = true;
}

}
if(!$flag)
{
break;
}
}
$flag = false;
}


//选择法排序
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;
}
}

//插入法排序

function insertSort(&$arr){

for($i = 1;$i<count($arr);$i++)
{
$insertVal = $arr[$i];
$insertIndex = $i-1;
while($insertIndex >=0&&$insertVal<$arr[$insertIndex])
{
$arr[$insertIndex + 1] = $arr[$insertIndex];
$insertIndex --;
}
$arr[$insertIndex + 1] = $insertVal;
}
}

//快速法排序
function quickSort($arr)
{
$len = count($arr);
if($len <= 1) {
return $arr;
}
$key = $arr[0];
$left_arr = array();
$right_arr = array();

for($i=1; $i<$len; $i++){
if($arr[$i] <= $key){
$left_arr[] = $arr[$i];
} else {
$right_arr[] = $arr[$i];
}
}

$left_arr = quickSort($left_arr);
$right_arr = quickSort($right_arr);
return array_merge($left_arr, array($key), $right_arr);
}

$arr = array(9,8,65,97,76,13,27);



//Mypop($arr);
//selectSort ($arr);
insertSort($arr);
// print_r(quickSort($arr));

print_r($arr);

?>
...全文
125 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
码无边 2013-09-16
  • 打赏
  • 举报
回复
你这直接度娘照的吧、

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧