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

网站开发软件和工具ide和编辑器搜索引擎营销的优缺点及案例

网站开发软件和工具ide和编辑器,搜索引擎营销的优缺点及案例,辽宁建设厅网站什么时候换的,9元包邮网站怎么做文章目录 前言核心问题遍历查找思路遍历查找代码实现遍历查找缺点二分查找思路二分查找代码实现二分查找优点二分查找的变种问题一解题思路代码实现问题二解题思路代码实现 前言 大家好,我是醉墨居士,今天聊一下计算机中的经典算法 - 二分算法 核心问题…

文章目录

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

前言

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

核心问题

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

遍历查找思路

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

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

如果是则直接返回索引

如果当前数大于要查询的数直接返回-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.khdw.cn/news/5301.html

相关文章:

  • 电子商务网站开发技术毕业论文seo关键词分析表
  • 简洁大气的网站设计seo中国是什么
  • 上海网站空间续费爱站工具包下载
  • 网站怎么做https大连网站开发公司
  • 宁波网站推广工具国外推广渠道平台
  • 使用cdn做网站内容加速互联网营销工具有哪些
  • 重庆网站建设公司销售网络域名怎么查
  • 有域名怎么做网站今天的新闻大事10条
  • 3d全景网站怎么做如何在百度上建立网站
  • 做网站是什么产品软文范例800字
  • flash网站的优缺点推广如何做网上引流
  • 苏州seo网络推广韶山百度seo
  • 请人做网站买断域名媒体广告投放平台
  • 产品类网站模板搜索引擎营销方法有哪些
  • 做外贸公司网站重不重要竞价网络推广托管
  • 怎么查网站是用什么语言做的百度网盘帐号登录入口
  • 公司做宣传网站企业建站免费模板
  • 松原建设网站如何免费做网站网页
  • 电子商务网站建设与规划视频企业网站的优化建议
  • 深圳网站建设公司电话石家庄百度搜索引擎优化
  • 重庆建设岗位培训系统广州seo推广营销
  • 做家装的网站有什么区别百度推广多少钱一天
  • 专门做特产的网站windows优化大师的特点
  • 郑州做网站九零后网络互联网媒体推广
  • 武汉网站维护怎么制作百度网页
  • 政府网站建设计划优化服务是什么意思
  • 做网站在哪接广告seo优化公司排名
  • 万能网站网址下载网站发布与推广怎么写
  • 注册公司网站流程企业软文怎么写
  • 柳州正规网站制作公司哪家好教育培训机构加盟