排序数组中某个数出现的次数

  if(array==null)
       {
           return 0;
       }
       int begin = 0;
       int end = array.length-1;
       int mid = begin + (end-begin)/2;
       int count=0;
       while(begin<=end)
       {
           if(array[mid]==k)
           {
                count++;
                int t=mid-1;
                int n=mid+1;
                while(t>=0&&array[t]==k)
                {
                    t--;
                    count++;
                }
                while(n<=array.length-1&&array[n]==k)
                {
                    count++;
                    n++;
                }
                return count;
           }
           else if(array[mid]<k)
           {
                begin=mid+1;
                mid = begin + (end-begin)/2;
           }
           else{
                end = mid-1;
                mid = begin + (end-begin)/2;
           }

       }
       return 0;
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容