当前位置: 首页 > news >正文

做后期的网站有哪些百度官网认证价格

做后期的网站有哪些,百度官网认证价格,最好的网站建设公司,泊头市做网站价格如果要你在一个升序序列中查找一个值的位置&#xff0c;你是否还会傻乎乎的用下面这个 O ( n ) \mathcal O(n) O(n) 的代码暴力查找&#xff0c;如果是&#xff0c;我告诉你&#xff0c;其实根本不用这么做。 int find(int a[],int n,int k) {for(int i0;i<n;i) if(a[i]k)…

如果要你在一个升序序列中查找一个值的位置,你是否还会傻乎乎的用下面这个 O ( n ) \mathcal O(n) O(n) 的代码暴力查找,如果是,我告诉你,其实根本不用这么做。

int find(int a[],int n,int k) {for(int i=0;i<n;++i) if(a[i]==k) return i;
}

猜数字这个游戏大家都玩过吧,这里介绍以下规则:

  1. 一名玩家在一个范围内想出一个数。
  2. 这名玩家告诉其他玩家他所想的范围。
  3. 其他玩家在这个范围内猜数,若:
    • 猜中了:该玩家获胜
    • 没猜中:根据该玩家猜的数缩小范围,然后接着进行操作 2。对于缩小范围,设初始范围为 l ∼ y l\sim y ly,要猜的数为 n n n,猜的数位 n n n,若:
      • m < n m<n m<n,将范围缩小至 m ∼ r m\sim r mr
      • m > n m>n m>n,将范围缩小至 l ∼ m l\sim m lm

显然,想要最快猜到该数,就需要采用折半的方法去猜,每次都猜这个范围的中间数。二分查找也是一样,对于每一次查找,都判断中间的数与要找的数的大小关系,然后采取对应的操作。

需要注意的是,二分查找需要保证序列是升序的。

这里放个代码:

//循环版
int find(int a[],int n,int k) {int l=0,r=n-1;while(l<=r) {int mid=(l+r)/2;if(a[mid]>k) r=mid-1;else if(a[mid]<k) l=mid+1;else if(a[mid]==k) return mid;}return -1;
}
//递归版
int find(int a[],int n,int k,int l,int r) {if(l>r) return -1;int mid=(l+r)/2;if(a[mid]>k) return find(a,n,k,l,mid-1);else if(a[mid]<k) return find(a,n,k,mid+1,r);else if(a[mid]==k) return mid;
}

练习题:洛谷 link

http://www.dinnco.com/news/43536.html

相关文章:

  • 做网站贷款长沙推广引流
  • 苏州朗冠网站建设公司seo在线排名优化
  • 一个微信公众号可以做几个网站创建网页步骤
  • 上海企业网站seo免费下载百度一下
  • 建设工程发布公告的网站谷歌seo视频教程
  • 小程序ui设计报价宁波seo排名优化价格
  • 网页制作教程视频 网盘网站排名seo软件
  • 为什么做的网站在浏览器搜不到广告投放价目表
  • 做网站app的工资高吗网络推广山东
  • 国外设计网站pinterest网址用html制作淘宝网页
  • 怎么看一个网站是由哪个网络公司做的推广软文300字范文
  • 源码网站违法吗草根seo视频大全
  • 机房建设网站热狗seo外包
  • 鄂州网站建设与设计百度搜索风云榜小说排行榜
  • 二手交易网站建设方案ppt中国局势最新消息今天
  • 网站建设深圳公司百度竞价排名正确解释
  • 网站设计一般多少钱一个页面网络推广引流方式
  • 高校英文网站建设 文献综述查网址
  • 网页搜索不了锦州网站seo
  • 徐州网站开发汕头seo排名收费
  • 网站如何加链接电商seo优化是什么意思
  • 国外b2b网站导航惠州百度关键词优化
  • 台州高端网站建设排名前十的小说
  • 做网站只开发手机端可不可以seo专员是什么职业
  • 企业建设网站的好处对seo的理解
  • 建立网站需要企业网站推广的方法有哪些
  • 广州站成都高新seo
  • 永城网站建设百度seo快速排名优化
  • 做网站的模版网络培训心得体会总结
  • 沈阳工程建设信息网站黄山seo