喜悦国际村 
» 游客:  注册 | 登录 | 搜索 | 统计 | 喜悦证交所 | 帮助

RSS 订阅当前论坛  

$5.95 Web Hosting     

上一主题 下一主题
     
标题: [问题] 从一个数组中找出 相等的数的下标  
 
lywindly
中级会员
Rank: 3Rank: 3
初级会员



UID 67672
精华 0
积分 246
帖子 107
金钱 246 喜悦币
威望 0
人脉 0
阅读权限 30
注册 2006-1-1
状态 离线
[广告]: 代充Paypal帐号美元
从一个数组中找出 相等的数的下标

在一个数组中,有1-99个数字 其中有两个相等的数 找出这两个数的下标
考虑效率上最好的方法

我自己想了两个感觉效率都不高  高手给点建议

<?php
第一个
$a
=array(1,5,88,98,7,43,4,5,45,66,33);

for(
$i=0;$i<10;$i++){
    for(
$j=0;$j<10;$j++){

      if(
$a[$i]==$a[$j]&&$i!=$j){

     echo 
$a[$i].'key is'.$i.'<br>';

}
}    
}
?>


<?php
第二个
$a
=array(1,5,88,98,7,43,4,5,45,66,33);
$b=array_count_values($a);
$c=max($b);
$e=array_search($c,$b);
$result=array_keys($a,$e);
foreach(
$result as $val)
{
 echo 
$e.'key is'.$val.'<br>';
}
?>




我一刀 你一刀 看谁捅死谁
2007-10-31 07:42 PM#1
查看资料  发短消息  顶部
 
undersky
注册会员
Rank: 2



UID 73130
精华 0
积分 175
帖子 252
金钱 175 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2006-5-10
来自 福建
状态 离线
[广告]: 代充Paypal帐号美元
$countOfArray =  array_count_values($yourArray);
foreach($countOfArray as $key=>$value)
{
   if((int)$value>1)
   {
     $myArray[]=$key;
   }
}

foreach($yourArray as $key1=>$value1)
{
   if(in_array($value1,$yourArray))
   {
      $resultKey[] = $key1;
   }
}
如上所示,如果您的数组长度为m,其中有n个数有重复,则这个算法的时间复杂度为O(m+array_count_values的复杂度*n),

而你自己的算法时间复杂度为O(m*n)




彩票,福利彩票,彩票网,双色球,福彩,福彩3D,投注站,风采,3D,中奖,彩民,公告,七乐彩,代购,合买,公益,刮刮乐,开奖,走势图,投注
2007-10-31 09:55 PM#2
查看资料  访问主页  Blog  发短消息  QQ  顶部
 
lywindly
中级会员
Rank: 3Rank: 3
初级会员



UID 67672
精华 0
积分 246
帖子 107
金钱 246 喜悦币
威望 0
人脉 0
阅读权限 30
注册 2006-1-1
状态 离线
[推荐阅读] javascript怎么操作<object>


QUOTE:
原帖由 undersky 于 2007-10-31 09:55 PM 发表
$countOfArray =  array_count_values($yourArray);
foreach($countOfArray as $key=>$value)
{
   if((int)$value>1)
   {
     $myArray[]=$key;
   }
}

foreach($yourArray as $key1=>$va ...
确实如此 开始也想过 用FOREACH来出 但是没有想到用IN_array 自己还是不熟练

还要学习  怎样才能很直观的 总结出效率呢




我一刀 你一刀 看谁捅死谁
2007-10-31 10:16 PM#3
查看资料  发短消息  顶部
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题 | 开通个人空间  


 




Powered by Discuz! 6.1.0  © 2001-2010 Comsenz Inc.
Processed in 0.033331 second(s), 6 queries

(冀ICP备05009913号) 管理员:sadly 邮箱/MSN: sadly@phpx.com QQ:824008(长隐) 清除 Cookies - - Archiver - WAP