小时候不怎么注意算法,觉得算法是一种奇技淫巧。后来发现自己错了。
算法是程序员对程序的思考,做事情的时候一定要有一个清晰的思路。写程序的时候更应该如此!
今天在写一个抓取网页链接的程序,遇到这么一个问题。
把抓到的元素<word,num>放到几个数组中,然后使用一个数组存放,如果遇到重复则合并。
$ret=array();
for($i=0;$i<count($wordlist);$i++)
{
$word=$wordlist[$i];
$flag
= true;
if(count($ret)==0)
{
$tem =
array(‘word‘=>$word,‘num‘=>‘1‘);
array_push($ret,$tem);
}
for($j=0;$j<count($ret);$j++)
{
if($word!=$ret[$j][‘word‘])
{
$flag=false;
}
else
{
$ret[$j][‘num‘] =
intval($ret[$j][‘num‘])+1;
$flag=true;
break;
}
}
if(!$flag)
{
$tem
=
array(‘word‘=>$word,‘num‘=>‘1‘);
array_push($ret,$tem);
}
$flag
= true;
}
整体代码的逻辑性很差,而且后来出现了bug。
后来修正:思路是
遍历数组;
设置flag=false;
检查大数组中是否含有该元素,如果有返回 flag = true 记录在大数组中的索引
判断 flag 如果为true 大数组在索引处的num 相加,如果没有,push
重新初始化 flag = false
生活就像是程序,一个做事清晰的人,可以成为一个很好的程序员。
好的程序员也必须要做事清晰。
深深的检讨一下自己!
原文:http://www.cnblogs.com/z497688734/p/3656651.html