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

提示网站建设页面怎么做网站小图标

提示网站建设页面,怎么做网站小图标,门户网站兴化建设局,两个男的怎么做网站1、知识介绍: 1.1 概念: 二分查找是一种在有序数组中查找某一特定元素的搜索算法 1.2 基本思想: 每次将待查找的范围缩小一半,通过比较中间元素与目标元素的大小,来决定是在左半部分还是右半部分继续查找。 举个生…

1、知识介绍:

1.1 概念:

二分查找是一种在有序数组中查找某一特定元素的搜索算法

1.2 基本思想:

每次将待查找的范围缩小一半,通过比较中间元素与目标元素的大小,来决定是在左半部分还是右半部分继续查找。

举个生活中的小例子:

比如说你朋友和你说她买了一件衣服价格不超过300元,然后让你猜一猜具体的价格,你肯定不会像 1 2 3……这样一个一个猜,而是先猜中间值150,如果实际价格比150大,则0~150之间的数字就不需要再猜,此时范围便缩小到150~300;这时候再猜225,如果实际价格小于225元,则225~300之间的数字就不需要再猜了,经过这样几次的猜测后,范围会逐渐缩小,大大提高了猜中数字的效率,这种思想就是二分查找。

1.3 二分查找的优缺点:

优点:二分查找的效率很高,在查找有序数组中的数字时,比遍历数组的效率高很多;

不足:二分查找的使用条件很苛刻,只有在有序数组中才能使用二分查找。

2、题目

写一个二分查找函数

功能:在一个升序数组中查找指定的数值,找到了就返回下标,找不到就返回-1.

int arr[ 10] = {11,23,23,56,77,88,98,111,121,131}

3、思路:

关于查找数组中的元素,我们一般是通过下标来锁定元素

3、 分析main函数

int main()
{int arr[] = {11,23,23,56,77,88,98,111,121,131};int k = 0;scanf("%d", &k);//输入想要找的值int sz = sizeof(arr) / sizeof(arr[0]);//获取元素个数int left = 0;int right = sz - 1;int result = bin_search(arr, left, right, k);if (result != -1) {printf("找到了,下标为: %d\n", result);}else {printf("未找到\n");}return 0;
}

3.1  代码解释int left = 0; int right = sz - 1;

 3.2 代码解释 int result = bin_search(arr, left, right, k);

 bin_search是一个自定义函数,用来实现二分查找的过程

int result = bin_search(arr, left, right, k);是调用了一个名为 bin_search 的函数,并将返回值存储在变量  result 中。

  • arr 是要进行查找操作的数组。
  •  left 和 right 分别是数组的起始下标和结束下标,确定了当前要查找的范围。
  • k 是要在数组中查找的目标值。

4、分析函数bin_search

int bin_search(int arr[], int left, int right, int k)
{int mid = (left + right) / 2;while (left <= right){int mid = (left + right) / 2;if (arr[mid] < k){left = mid + 1;}else if (arr[mid] > k){right = mid - 1;}else{return mid;}}return -1;
}

4.1 二分查找的运算方式:

5、完整代码

#include <stdio.h>
int bin_search(int arr[], int left, int right, int k)
{int mid = (left + right) / 2;while (left <= right){int mid = (left + right) / 2;if (arr[mid] < k){left = mid + 1;}else if (arr[mid] > k){right = mid - 1;}else{return mid;}}return -1;
}int main()
{int arr[] = {11,23,23,56,77,88,98,111,121,131};int k = 0;scanf("%d", &k);int sz = sizeof(arr) / sizeof(arr[0]);int left = 0;int right = sz - 1;int result = bin_search(arr, left, right, k);if (result != -1) {printf("找到了,下标为: %d\n", result);}else {printf("未找到\n");}return 0;
}

  函数bin_search  会在给定的数组范围 left 到  right 内查找目标值 k ,并返回找到目标值时的下标或者 -1 表示未找到。然后这个返回值就被赋值给了 result  ,后续的代码会根据 result  的值来判断是否找到了目标值。

6、不使用函数的二分查找

#include <stdio.h>
int main()
{int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };int k = 7;scanf("%d", &k);int sz = sizeof(arr) / sizeof(arr[0]);int left = 0;int right = sz - 1;int flag = 0;while(left <= right){int mid = (left + right) / 2;if (arr[mid] < k){left = mid + 1;}else if (arr[mid] > k){right = mid - 1;}else{printf("找到了,下标位%d\n", mid);flag = 1;break;}}if (flag == 0)printf("没找到");return 0;
}

如果觉得还不错的话,就给小编一个三连吧!!!

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

相关文章:

  • 河北秦皇岛建设局网站WordPress多站点默认设置
  • 安亭网站建设小型教育网站的开发与建设
  • 山东卓商网站建设公司网站侧导航
  • 南宁良庆网站建设昆明做网站找启搜网络
  • 特种工建设网站wordpress+企业库插件
  • 网站建设大数据网站信息备案管理系统
  • 世界杯网站开发青海建设厅网站尚少岩
  • 营销型网站报价外贸搜索引擎
  • 朝阳网站建设怎么样一份完整的品牌策划方案
  • 北京做手机网站网站做超链接薪资多少一个月
  • 做电脑网站用什么软件好用吗页面 访问 升级 广大
  • 做淘宝联盟网站要多少钱?株洲有实力关键词优化服务
  • 泉州 网站建设公司首选销售网站开发步骤
  • 重庆定制网站建设地址施工企业质量管理体系文件中质量方针需经过()批准后生效。
  • asp网站防注入代码做it的要给赌场网站做维护吗
  • 合肥网站建设方案辽宁住房和城乡建设厅网站首页
  • 营销网站建设计划书手机网站开发技术
  • 专注高密做网站哪家强温岭app开发公司
  • 企业网站 数据库seo优化范畴
  • 网站建设 企炬江阴一个网站多个域名重定向怎么做
  • 如何布置网站宜宾广告设计公司
  • 做网站的公司那家好公司建设网站的意义
  • 本溪市城乡住房建设厅网站相亲网站排名前十名
  • 哪有专做飞织鞋面的网站六盘水做网站
  • 弄一个关于作文的网站怎么做建设我们的网站
  • 湖北专业的网站制作代理商全球十大电商平台排名
  • 专业购物网站定制群辉授权wordpress权限
  • 公司网站 域名 cn com未做301重定向的网站
  • 南京做网站工作室网页设计入门书籍
  • 网站未做安全隐患检测怎么拿shell展厅宣传片