一个简单逻辑的思考

小时候不怎么注意算法,觉得算法是一种奇技淫巧。后来发现自己错了。

算法是程序员对程序的思考,做事情的时候一定要有一个清晰的思路。写程序的时候更应该如此!

今天在写一个抓取网页链接的程序,遇到这么一个问题。

把抓到的元素<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

 

生活就像是程序,一个做事清晰的人,可以成为一个很好的程序员。

好的程序员也必须要做事清晰。

深深的检讨一下自己!

 

posted @ 2014-04-10 15:39  z497688734  阅读(121)  评论(0编辑  收藏  举报