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

长沙做网站公司有哪些优化推广服务

长沙做网站公司有哪些,优化推广服务,网站开发外包业务怎么接,付费的网站推广该怎么做引言: 由于前段时间学习效率不高,导致后面复习前面数据结构没有一个大纲,因此打算重新来学习以下数据结构,期望再次把数据结构学透,并有深刻的印象.并且记录每一次的学习记录 以便于后续复习 二分查找 需求:在有序数组arr内,查找target值 如果找到返回索引位置如果找不到返回…

引言:
由于前段时间学习效率不高,导致后面复习前面数据结构没有一个大纲,因此打算重新来学习以下数据结构,期望再次把数据结构学透,并有深刻的印象.并且记录每一次的学习记录 以便于后续复习

二分查找

需求:在有序数组arr内,查找target值

  • 如果找到返回索引位置
  • 如果找不到返回 -1

基础版

步骤:

  1. 设定两个指针(左闭右闭) 分别为 i= 0,j = arr.length-1
  2. 循环条件 i<j ,如果i>j 结束查找 没找到
  3. 定义变量 m = (i+j)/2
  4. 比较target与m索引的值
    (1)target < arr[m] —> j = m-1
    (2)target > arr[m] —> i = m+1
    (3)target = arr[m] —> return m
  5. 循环结束没找到 返回-1;
public static int binarySearch(int[] arr,int target){int i = 0,j = arr.length-1;//设置指针和初始值while(i<=j){int m = (i+j)/2;if(target<arr[m]){j = m-1;}else if(arr[m]<target){i = m+1;}else{return m;}}return -1;}

查找14动态演示
在这里插入图片描述

问题一: 循环条件为i<=j 为什么不是i<j?

相当于多了i=j 这个条件 ,意味着但i=j 时这个元素也要参与比较
比如 查找 5 时 最后 i j m 都会指向5 若没有= 就跳出了循环i,j
就没有参与到比较

请添加图片描述
问题二: (i+j) /2 是否有问题?

从客观来讲,没有问题 但是在极端情况下,数据量达到整型的最大值的(i+j)就会出现问题 由于计算机存储的数据是有一定的范围的,就有可能会导致算出来的结果为负值 所以要用到位运输 (i+j)>>>1 无符号右移可以避免此情况发生

在这里插入图片描述

改动版

思维逻辑大概与基础版相似 考虑在算法的优劣 这种方法相当于基础版更优化了一些

   public static int binarySearchAlternative(int[] arr,int target){int i = 0,j = arr.length;//变化一:i 作为查找数据的左闭  而j 只是一个边界不参与运输while (i<j){//i<j 表示 j下标的运算不用参与计算了int m = (i+j)>>>1;if (target<arr[m]){j = m;//j始终保持为边界} else if (arr[m]<target) {i = m+1}else{return m;}}return -1;}

平衡版

在基础版中假设在while 循环中执行了L次 ,那么假设目标元素在最左边 if 就执行L次,而如果元素在最右边,if-else 就执行了2*L次 因此用该方法查找时并不平衡.

public static int binarySearchBalance(int[] arr,int target){int i = 0,j = arr.length;while(1<j-i){int m = (j+i)>>>1;if(target<arr[m]){j = m;}else {i = m;}}if(arr[i] == target){return i;}else {return -1;}}

提示

  1. 左闭右开的区间, i 指向可能是目标,而 j 指向的不是目标 是边界
  2. 不在循环内找出,等范围内只剩下 i 时,退出循环,在循环外比较arr[i]与targert\
  3. 循环内的平均比较次数减少了
  4. 时间复杂度为O(log(n)) —> 最坏和最好情况下均是

复杂度

时间复杂度:一个算法的执行,随数据规模增大,而增加的时间成本
空间复杂度:一个算法的执行,随数据规模增大,而额外增加的空间成本

两者均用大O表示法,考虑的是最复杂的情况

例如,二分查找的时间复杂度为O(log(n)) 空间复杂度为O(1);

总结

基础版和改动版的区别在于 给定的指针的位置不同
基础版在于 包括 i 索引和j索引的以内包括自身数据查找 为左闭右闭
改动版在于 包括 i 索引到j索引前的数据查找 为左闭右开

http://www.hengruixuexiao.com/news/40451.html

相关文章:

  • 做定制的网站推广计划怎么做推广是什么
  • 深圳it外包公司有哪些排名seo公司哪家好
  • app下载网站建设网站检测
  • 京东商城网站建设方案书建立免费网站
  • 盛泽做网站沈阳seo按天计费
  • 网上购书的网站开发的意义制作一个网站需要多少费用
  • 动态网站建设第01章b站推广怎么买
  • 做计量检定的网站关键词排名点击软件工具
  • 唐山网站建设优化网站整站优化公司
  • 深圳做网站设计手机如何制作网站
  • 做网站编辑的时候没保存怎么搜索引擎优化文献
  • 做网站 教程国外产品推广平台
  • 仿站网站建设色盲测试图数字
  • 阿里云 wordpress 区别百度seo关键词优化排行
  • 做网站选哪家公司企业seo顾问公司
  • 苏州知名网站制作全网网站快速排名推广软件
  • 有了域名怎样做网站百度竞价广告代理
  • dede手机网站教程各引擎收录查询
  • 会用框架做网站能找到工作吗网络营销的定义是什么
  • 在南昌市做网站到哪重庆seo推广
  • google广告联盟网站如何推广产品
  • 做网站推广优化靠谱seo快速优化软件
  • 如何做好网站建设关键词分为哪三类
  • 怎么做微网站推广百度保障平台 客服
  • 外管局网站怎么做报告网站搭建
  • 只做一页的网站多少钱网络推广产品公司
  • 个人wordpress怎么赚钱seo是什么职位简称
  • 更新网站的方法百度关键词推广工具
  • 邢台优化网站排名今天刚刚最新消息2023
  • 网站攻击方式seo投放是什么意思