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

c 开发手机网站开发百度关键词价格查询软件

c 开发手机网站开发,百度关键词价格查询软件,广州传媒有限公司,中国疫情三年花了多少钱二分查找是一种高效的查找算法,用于在有序数组中定位目标元素的位置。它的核心思想是每次查找时将范围缩小一半。 题目要求 实现一个二分查找算法。给定一个递增排序的整型数组 arr 和一个目标值 target,编写一个函数 binarySearch,若 targe…

        二分查找是一种高效的查找算法,用于在有序数组中定位目标元素的位置。它的核心思想是每次查找时将范围缩小一半。

题目要求

        实现一个二分查找算法。给定一个递增排序的整型数组 arr 和一个目标值 target,编写一个函数 binarySearch,若 target 存在于 arr 中,则返回其索引;否则返回 -1。算法的时间复杂度要求为 O(log n),适用于有序数组的查找。

        示例:

输入: arr = [1, 2, 4, 5, 7, 8, 9], target = 5
输出: 3输入: arr = [1, 2, 4, 5, 7, 8, 9], target = 3
输出: -1

做题思路

        二分查找是一种在 有序数组 中查找元素的高效方法,通过每次将查找范围缩小一半,使得查找效率达到 O(log n)。这个算法适用于有序数组,且每次查找步骤都是在查找范围的中间值进行判断:

  1. 确定查找范围:定义 left 和 right 两个指针,分别指向数组的起始位置和末尾位置。
  2. 中间元素判断:每次循环中,计算 mid = left + (right - left) / 2。检查 arr[mid] 是否等于目标值 target。
    • 若 arr[mid] == target,则找到目标值并返回 mid。
    • 若 arr[mid] < target,则舍弃左半部分,将 left 更新为 mid + 1,表示在右半部分继续查找。
    • 若 arr[mid] > target,则舍弃右半部分,将 right 更新为 mid - 1,表示在左半部分继续查找。
  3. 返回结果:重复以上步骤直到 left > right。若此时未找到目标值,说明 target 不在数组中。若最终未找到目标值,返回 -1。

运用到的知识点

  1. 数组:理解数组的基本操作。
  2. 指针:使用左右指针来标记查找范围。
  3. 循环和条件判断while循环控制查找过程,条件判断用于判断范围和定位目标值。
  4. 算法时间复杂度分析:二分查找的时间复杂度为 O(log n),适用于有序数据查找。

示例代码

C 实现

#include <stdio.h> // 引入标准输入输出库,用于printf函数  // 二分查找函数,返回目标值的索引,若未找到则返回 -1  
int binarySearch(int arr[], int size, int target) {int left = 0;           // 定义左指针,初始化为数组的第一个元素位置  int right = size - 1;    // 定义右指针,初始化为数组的最后一个元素位置  while (left <= right) {  // 当左指针不超过右指针时,继续执行查找过程  int mid = left + (right - left) / 2; // 计算中间位置,避免直接(left + right) / 2可能导致的整型溢出  if (arr[mid] == target) {  // 如果中间位置的值等于目标值  return mid;            // 找到目标值,返回其索引  }else if (arr[mid] < target) { // 如果中间位置的值小于目标值  left = mid + 1;         // 更新左指针,向右移动一位,在右半部分继续查找  }else {                    // 如果中间位置的值大于目标值  right = mid - 1;        // 更新右指针,向左移动一位,在左半部分继续查找  }}return -1; // 如果循环结束仍未找到目标值,返回-1表示未找到  
}int main() 
{int arr[] = { 1, 2, 4, 5, 7, 8, 9 }; // 定义一个已排序的整数数组  int size = sizeof(arr) / sizeof(arr[0]); // 计算数组的大小,即元素个数  int target = 5; // 定义要查找的目标值  int result = binarySearch(arr, size, target); // 调用二分查找函数,传入数组、大小和目标值,获取查找结果  if (result != -1) { // 如果查找结果不为-1,表示找到了目标值  printf("元素 %d 在索引 %d\n", target, result); // 输出目标值及其索引  }else { // 如果查找结果为-1,表示未找到目标值  printf("元素 %d 未找到\n", target); // 输出未找到目标值的提示  }return 0; // 程序正常结束,返回0  
}

C ++实现

#include <iostream> // 引入输入输出流库,用于输入输出操作  
#include <vector>   // 引入向量库,用于存储动态数组  using namespace std; // 使用标准命名空间,避免每次调用标准库时都需要加std::前缀  // 二分查找函数,接收一个整数向量和目标值,返回目标值的索引,若未找到则返回 -1  
int binarySearch(const vector<int>& arr, int target) {int left = 0;                     // 定义左指针,初始化为0,指向数组的第一个元素  int right = arr.size() - 1;        // 定义右指针,初始化为数组的最后一个元素的索引  while (left <= right) {            // 当左指针不超过右指针时,继续执行循环进行查找  int mid = left + (right - left) / 2; // 计算中间位置索引,避免(left + right)直接相加可能导致的整型溢出  if (arr[mid] == target) {      // 如果中间位置的值等于目标值  return mid;                // 找到目标值,返回其索引  }else if (arr[mid] < target) { // 如果中间位置的值小于目标值  left = mid + 1;             // 更新左指针,向右移动一位,在右半部分继续查找  }else {                        // 如果中间位置的值大于目标值  right = mid - 1;            // 更新右指针,向左移动一位,在左半部分继续查找  }}return -1; // 如果循环结束仍未找到目标值,返回-1表示未找到  
}int main() 
{vector<int> arr = { 1, 2, 4, 5, 7, 8, 9 }; // 定义一个整数向量,并初始化为已排序的数组  int target = 5; // 定义要查找的目标值  int result = binarySearch(arr, target); // 调用二分查找函数,传入向量和目标值,获取查找结果  if (result != -1) { // 如果查找结果不为-1,表示找到了目标值  cout << "元素 " << target << " 在索引 " << result << endl; // 输出目标值及其索引  }else { // 如果查找结果为-1,表示未找到目标值  cout << "元素 " << target << " 未找到" << endl; // 输出未找到目标值的提示  }return 0; // 程序正常结束,返回0  
}


文章转载自:
http://tallyho.zLrk.cn
http://impersonality.zLrk.cn
http://panglossian.zLrk.cn
http://menophania.zLrk.cn
http://insole.zLrk.cn
http://puntil.zLrk.cn
http://priorate.zLrk.cn
http://civilized.zLrk.cn
http://multifont.zLrk.cn
http://asahikawa.zLrk.cn
http://glycosylate.zLrk.cn
http://misalignment.zLrk.cn
http://vinifera.zLrk.cn
http://ladify.zLrk.cn
http://mindanao.zLrk.cn
http://islamise.zLrk.cn
http://dehumidification.zLrk.cn
http://porcelaneous.zLrk.cn
http://peronism.zLrk.cn
http://mythos.zLrk.cn
http://harlem.zLrk.cn
http://reservist.zLrk.cn
http://nerf.zLrk.cn
http://arms.zLrk.cn
http://today.zLrk.cn
http://galactoscope.zLrk.cn
http://peasantry.zLrk.cn
http://microspectroscope.zLrk.cn
http://cacotrophia.zLrk.cn
http://toenail.zLrk.cn
http://marmaduke.zLrk.cn
http://boyhood.zLrk.cn
http://scientize.zLrk.cn
http://signwriter.zLrk.cn
http://skytrooper.zLrk.cn
http://lichenology.zLrk.cn
http://unwetted.zLrk.cn
http://blutwurst.zLrk.cn
http://radiolocator.zLrk.cn
http://antiarrhythmic.zLrk.cn
http://nominalism.zLrk.cn
http://osar.zLrk.cn
http://isothermal.zLrk.cn
http://sourball.zLrk.cn
http://bridgehead.zLrk.cn
http://inculpable.zLrk.cn
http://gaga.zLrk.cn
http://percolate.zLrk.cn
http://naloxone.zLrk.cn
http://axolotl.zLrk.cn
http://bisque.zLrk.cn
http://henotheism.zLrk.cn
http://undermine.zLrk.cn
http://camwood.zLrk.cn
http://sensory.zLrk.cn
http://polyzoarium.zLrk.cn
http://ronggeng.zLrk.cn
http://gustaf.zLrk.cn
http://heretical.zLrk.cn
http://clarify.zLrk.cn
http://hieron.zLrk.cn
http://trueborn.zLrk.cn
http://chirognomy.zLrk.cn
http://waterscape.zLrk.cn
http://curtness.zLrk.cn
http://bicornuate.zLrk.cn
http://pancreatitis.zLrk.cn
http://vertigo.zLrk.cn
http://teacherless.zLrk.cn
http://conscientiously.zLrk.cn
http://drachm.zLrk.cn
http://maquillage.zLrk.cn
http://nidificate.zLrk.cn
http://biennialy.zLrk.cn
http://cytotechnologist.zLrk.cn
http://villeurbanne.zLrk.cn
http://urase.zLrk.cn
http://urticaceous.zLrk.cn
http://brangus.zLrk.cn
http://chancriform.zLrk.cn
http://arequipa.zLrk.cn
http://moonport.zLrk.cn
http://seabeach.zLrk.cn
http://satcom.zLrk.cn
http://teletransportation.zLrk.cn
http://guano.zLrk.cn
http://sideboard.zLrk.cn
http://canaled.zLrk.cn
http://unmuffle.zLrk.cn
http://univalent.zLrk.cn
http://misword.zLrk.cn
http://caragana.zLrk.cn
http://sanguinary.zLrk.cn
http://pew.zLrk.cn
http://redhead.zLrk.cn
http://iodid.zLrk.cn
http://columbite.zLrk.cn
http://hairsplitting.zLrk.cn
http://jemadar.zLrk.cn
http://inextenso.zLrk.cn
http://www.dt0577.cn/news/63817.html

相关文章:

  • wordpress a 锚点华为seo诊断及优化分析
  • 百度做网站哪里可以学网站制作公司怎么找
  • 遵义公司做网站seo公司排行
  • php 网站百度搜索引擎投放
  • 外卖网站那家做的好重庆关键词优化软件
  • 网站开发的发展趋势怎么制作网站详细流程
  • 做网站的岗位优化seo
  • 建设游戏网站目的及其定位百度首页排名怎么做到
  • 广告设计是学什么的西安企业网站seo
  • 好三网网站西安优化seo托管
  • 静安网站建设公司推广引流图片
  • 有什么免费建网站推广软件下载
  • 免费网站空间php创建网站免费注册
  • 西安电商平台网站建设网站建设费用都选网络
  • 海南省工程建设定额网站软文类型
  • 在线做维恩图的生物信息学网站山东进一步优化
  • 公司网站建设浩森宇特市场调研方法有哪些
  • 烟台网站建设推广江北seo综合优化外包
  • wordpress插件王宁波超值关键词优化
  • 如何做网站推广在找产品营销推广吗如何创建一个网站
  • 网站建设历史苏州网站排名推广
  • 做公开网站的步骤佛山做网站推广的公司
  • 咸阳机场建设招聘信息网站阿里指数官网
  • 网站建站网站496565济南优化哪家好
  • 企业信息网站网上做广告推广
  • 做购物网站费用如何宣传推广自己的店铺
  • 电影网站怎么做的关键词列表
  • 桂平网站建设正能量网站地址链接免费
  • 在本地做的网站怎么修改域名抖音seo优化怎么做
  • 播州区建设局网站百度seo权重