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

php实现计数排序

2016-01-20 11:29 519 查看

php实现计数排序

这个是参考百度百科的C语言版本,算法思想很简单,就是在相等的数处理的时候有问题,不过后来也想通了,也加上了注释。

<?php

$arr=array(1,2,3,5,2,3,9,8,3,2,7,4,9,8,0,4,587,93,47,59,8,2,6,83,4,9,65,2,18,7);

printArr($arr);

echo "<hr>";

function counting_sort(&$arr){

$arr_=array();

$cnt=0;

$len=count($arr);

for($i=0;$i<$len;$i++){//从第一个开始找比它小的数有多少个

$cnt=0;

for($j=0;$j<$len;$j++)

if($arr[$i]>$arr[$j])

$cnt++; //计数比他小的有多少个

while($arr_[$cnt]!=0 && $cnt<$len)

$cnt++; //对于相等的数,那么$arr_一定不为0,则cnt向前走一位进行存储

$arr_[$cnt]=$arr[$i];

}

for($i=0;$i<$len;$i++)

$arr[$i]=$arr_[$i];

}

counting_sort($arr);

printArr($arr);

function printArr($arr){

for($i=0;$i<count($arr);$i++)

echo ' '.$arr[$i];

echo "\n";

}

?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: