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

校园社交网站开发的目的与意义山东seo多少钱

校园社交网站开发的目的与意义,山东seo多少钱,技术支持东莞网站建设,首页重庆网站建设文章目录 前言核心问题遍历查找思路遍历查找代码实现遍历查找缺点二分查找思路二分查找代码实现二分查找优点二分查找的变种问题一解题思路代码实现问题二解题思路代码实现 前言 大家好,我是醉墨居士,今天聊一下计算机中的经典算法 - 二分算法 核心问题…

文章目录

  • 前言
  • 核心问题
  • 遍历查找思路
  • 遍历查找代码实现
  • 遍历查找缺点
  • 二分查找思路
  • 二分查找代码实现
  • 二分查找优点
  • 二分查找的变种
      • 问题一
      • 解题思路
      • 代码实现
      • 问题二
      • 解题思路
      • 代码实现

前言

大家好,我是醉墨居士,今天聊一下计算机中的经典算法 - 二分算法

核心问题

查找升序数组中某个数的索引

遍历查找思路

我们直接从头到尾遍历数组查找

判断当前数是否是要查询的数

如果是则直接返回索引

如果当前数大于要查询的数直接返回-1

如果不是则继续向后查找

如果最终也没找到,返回-1

遍历查找代码实现

def find_target(nums, target):for i in range(len(nums)):if nums[i] == target:return iif nums[i] > target:return -1return -1

遍历查找缺点

遍历查找没有利用数组是升序的特点,而是简单的暴力搜索,无法进行有效的剪枝
时间复杂度O(N),空间复杂度O(1)

二分查找思路

二分查找的核心就是利用数组是有序的特点

每次取待查找的区间的中点

如果中点对应的数等于要查找的数,直接返回中点索引

如果中点对应的数大于要查找的数,则在待查找的区间的左半区域进行查找

如果中点对应的数小于要查找的数,则在待查找的区间的右半区域进行查找

如果最终也没找到,返回-1

二分查找代码实现

def binary_find(nums, target):low, high = 0, len(nums) - 1while low <= high:mid = (low + high) >> 1if nums[mid] == target:return midelif nums[mid] > target:high = mid - 1elif nums[mid] < target:low = mid + 1    return -1

二分查找优点

合理利用有序数组这个特点,进行剪枝,每次查找都会减少一半的查询范围
时间复杂度O(Log N),空间复杂度O(1)

二分查找的变种

问题一

查找大于等于某个数最左边的数的索引,例如:[0,1,2,2,3,6,7] 中查找2的索引是2

解题思路

每次取待查找的区间的中点

如果中点对应的数大于等于要查找的数,则更新结果,并在待查找的区间的左半区域进行查找

如果中点对应的数小于要查找的数,则在待查找的区间的右半区域进行查找

如果最终也没找到,返回结果

代码实现

def find_left(nums, target):low, high = 0, len(nums) - 1ans = -1while low <= high:mid = (low + high) >> 1if nums[mid] >= target:ans = midhigh = mid - 1else:low = mid + 1return ans

问题二

查找旋转数组的最小值,例如:[4,5,6,7,0,1,2] 中的最小值为 0

解题思路

每次取待查找的区间的中点

如果中点对应的数大于右边界对应的数,则在待查找的区间的右半区域进行查找

如果中点对应的数小于等于右边界对应的数,则在待查找的区间的左半区域进行查找

直到最终查询完毕,返回左端点对应的数

代码实现

def find_min(nums):low, high = 0, len(nums) - 1while low < high:mid = (low + high) >> 1        if nums[mid] > nums[high]:low = mid + 1else:high = midreturn nums[low]
http://www.ds6.com.cn/news/34027.html

相关文章:

  • 池州网站建设中国新闻最新消息
  • 武汉企业做网站找哪家好苏州seo网站优化软件
  • 做b2b比较好的网站深圳关键词seo
  • 现在建网站做推广能赚钱吗重庆森林经典台词独白
  • 做软件的网站产品怎么做市场推广
  • 手机网站建设万网衡水seo培训
  • 网站建设发展趋势打开网站搜索
  • 十大免费文案网站搜客
  • 企业网站的形式网络营销的八大职能
  • 标准型网站建设开发百度的网址是多少
  • 加强政府网站网络信息安全建设google广告投放技巧
  • 企业做网站的好处整站seo技术
  • 昆明网站建设推广服务合肥seo整站优化
  • 网站建设 事业单位 安全网站开发语言
  • 腾讯企业邮箱域名可以做网站吗长沙网站快速排名提升
  • 珠海企业网站建设社群运营的经典案例
  • 深圳做网站外包公司有哪些小程序seo推广技巧
  • 机械加工类网站怎么做2024年新冠疫情最新消息今天
  • 建设工程案例网站成都市seo网站公司
  • 北京 网站设计上海网站快速优化排名
  • 网站代码多彩百度seo搜索排名
  • 深圳做微信网站公司哪家好seo内容优化是什么意思
  • 公司网站制作的费用申请长安网站优化公司
  • 做搞笑视频网站靠神魔赚钱网站制作软件免费下载
  • 怎样做音视频宣传网站爱网站查询
  • www.wordpress.org兰州网站seo
  • 网站流量一直下降淘宝权重查询入口
  • 上传网站的三种方法药品网络营销公司
  • 网站做收录深圳关键词优化怎么样
  • 惠州哪家做网站好百度一下你就知道 官网