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

建网页和建网站番禺网站(建设信科网络)

建网页和建网站,番禺网站(建设信科网络),wordpress 论坛类,太湖县住房与建设局网站目录 算法思想: 实践: 备注: 二分查找是一种高效的查找算法,适用于在 有序数组 或列表中快速定位目标元素的索引。 重要事情说三遍:使用前提:数组有序,无重复,如果数组未排序&am…

目录

算法思想:

实践:

备注:


二分查找是一种高效的查找算法,适用于在 有序数组 或列表中快速定位目标元素的索引。

重要事情说三遍:使用前提:数组有序,无重复,如果数组未排序,先进行排序去重处理。

                                               数组有序,无重复,如果数组未排序,先进行排序去重处理。

                                               数组有序,无重复,如果数组未排序,先进行排序去重处理。        

算法思想:

  1. 初始化左右边界: 定义两个指针 leftright,分别指向数组的起始位置和终止位置。
  2. 计算中间位置: 根据公式 mid = left + (right - left) // 2 计算中间位置索引,避免大数相加可能导致的溢出。(mid=(left+right)/2)这种写法当left和right很大时,可能数据溢出。

实践:

二分查找中,容易写错的地方往往是边界条件区间的定义,这是导致程序混乱的根本原因。这里详细解释一下这两种常见的区间定义(左闭右闭左闭右开)及其实现逻辑。

左闭右闭:

#include <stdio.h>int binarySearch(int arr[], int size, int target) {int left = 0;int right = size - 1;while (left <= right) {// 使用向下取整的公式计算中点int mid = left + (right - left) / 2;if (arr[mid] == target) {return mid; // 找到目标值} else if (arr[mid] < target) {left = mid + 1; // 在右半部分查找} else {right = mid - 1; // 在左半部分查找}}return -1; // 未找到目标值
}int main() {int arr[] = {1, 3, 5, 7, 9, 11}; // 偶数长度数组int size = sizeof(arr) / sizeof(arr[0]);int target = 7;int result = binarySearch(arr, size, target);if (result != -1) {printf("目标值 %d 的索引是 %d\n", target, result);} else {printf("目标值 %d 未找到。\n", target);}return 0;
}

左闭右开:

#include <stdio.h>int search(int* nums, int numsSize, int target) {int left = 0;int right = numsSize; // 左闭右开区间while (left < right) { // 循环条件:left < rightint mid = left + (right - left) / 2;if (nums[mid] == target) {return mid; // 找到目标值} else if (nums[mid] > target) {right = mid; // 调整右边界} else {left = mid + 1; // 调整左边界}}return -1; // 未找到目标值
}int main() {int nums[] = {1, 3, 5, 7, 9};int numsSize = sizeof(nums) / sizeof(nums[0]);int target = 7;int result = search(nums, numsSize, target);if (result != -1) {printf("目标值 %d 的索引是 %d\n", target, result);} else {printf("目标值 %d 未找到。\n", target);}return 0;
}

备注:

在二分查找中,左中点(向下取整)右中点(向上取整) 的计算方式会影响算法的细节,但在实际应用中,它们的功能基本是等效的。

http://www.yayakq.cn/news/46156/

相关文章:

  • 中国建设银行浙江分行网站淘宝搜索关键词排名查询工具
  • 百度seo公司整站优化软件凡科网做的网站怎么样
  • 深圳做网站制作wordpress 获取用户名
  • 企业网站开发报价形式网站如何转做app
  • 注册公司网站怎么做404 wordpress
  • 网站文章优化技巧衡阳网站开发
  • 做网站开源网站建立公司 优帮云
  • 上海装修公司网站建设网站题目有哪些
  • 邯郸营销型网站建设h5说 网站
  • 学校网站管理wordpress 如何移动端
  • 做网站会出现什么问题用相片制作视频的软件
  • 做一组静态页面网站多少钱哪个网站原创文章
  • 网站策划书的意义网站开发 银行接入 ca 认证 接入
  • 公司网站建设计入什么费用做网站开发哪种语言更稳定高效
  • 东莞高端网站建设wordpress 用户充值
  • 汕头网站制作公司价格wordpress chmod() 函数
  • wordpress怎么仿站网页制作平台的是
  • 无锡网页网站制作公司小说网站充值接口怎么做的
  • 利用虚拟主机建设企业网站徐州网站建设招聘网
  • 山东外贸网站是什么意思高端网站开发公司有哪些
  • 东莞电子产品网站建设广州现在算什么风险地区
  • 网站流量查询最准的大型网站建设推广
  • 建立自己的平台网站吗可信的免费网站建设
  • 互联网创业就是做网站吗wordpress账号邮箱
  • 小说网站防盗做的最好的是qq网页即时聊天
  • 韩国网页设计网站梅州做网站设计公司
  • 中国做网站最好的企业网站域名年龄查询
  • 建设电子元器件网站外包岗位可以去吗
  • 潍坊网站建设外包平顶山有做网站的公司
  • 简诉网站建设的基本流程图百度小程序注册