当前位置:首页 > PHP教程 > php数组 > 列表

PHP学习之统计某个数字在排序数组中出现的频次

发布:smiling 来源: PHP粉丝网  添加日期:2020-04-04 21:52:04 浏览: 评论:0 

本篇文章的主要内容是用PHP实现统计一个数字在排序数组中出现的次数,感兴趣的朋友可以了解一下,希望能够帮助到你。

问题:统计一个数字在排序数组中出现的次数。

思路1:一般的遍历,比较有没有相等的,有就自动+1;

思路2:利用二分法,将相等的数先找到,记录下标。然后遍历一下从0到改下标和从该下标到头总共多少相等的,记录。

  1. left=getLeft(data,k) 
  2.  
  3. right=getRight(data,k) 
  4.  
  5. retun right-left+1 
  6.   
  7. getLeft data,k 
  8.  
  9.     left=0 
  10.  
  11.     right=arr.length-1 
  12.  
  13.     mid=left+(right-left)/2 
  14.  
  15.     while  left<=right 
  16.  
  17.         if arr[mid]<k    //关键 
  18.  
  19.             left=mid+1 
  20.  
  21.         else 
  22.  
  23.             right=mid-1 
  24.  
  25.         mid=left+(right-left)/2 
  26.  
  27.     return left 
  28.  
  29. getRight data,k 
  30.  
  31.     left=0 
  32.  
  33.     right=arr.length-1 
  34.  
  35.     mid=left+(right-left)/2  
  36.  
  37.     while  left<=right 
  38.  
  39.         if arr[mid]<=k   //关键 
  40.  
  41.             left=mid+1 
  42.  
  43.         else 
  44.  
  45.             right=mid-1 
  46.  
  47.         mid=left+(right-left)/2 
  48.  
  49.     return right 

Tags: PHP统计数字 PHP排序数组

分享到: