//一维数组二分法
#include <stdio.h>
int search(int number,int dict[],int length); //二分法搜索函数声明,返回下标
int main(){int num;//数组大小 int i,j;//循环变量 printf("请输入数组大小:");scanf("%d",&num);int dict[num];int num_1;int item; //排序时作为中间变量 printf("请输入数组元素:");for(i=0;i<num;i++){scanf("%d",&dict[i]);}//进行二分法搜索之前,先把数组从小到大排序/*在n个数中找最小的,与dict[0]交换在n-1个数中找最小的,与dict[1]交换在n-2个数中找最小的,与dict[2]交换*/ for(i=0;i<num;i++){num_1=i;for(j=i+1;j<num;j++){if(dict[j]<dict[num_1]){num_1=j;}}item=dict[num_1];  //交换顺序        dict[num_1]=dict[i];dict[i]=item;}//输出排序后的数组printf("排序后的数组:");for(i=0;i<num;i++){printf("%3d",dict[i]);}printf("\n"); printf("PS:下标为排序后的下标\n");//二分法排序int num_num;//接受下标 int number;  //搜索目标数字 printf("请输入要查找的数:");scanf("%d",&number);num_num=search(number,dict,sizeof(dict)/sizeof(dict[0]));if(num_num!=-1){printf("目标数:%d   下标为:%d",number,num_num);}else{printf("NOT FOUND");}return 0;
} int search(int number,int dict[],int length){int i;int ret=-1;int left=0;int right=length-1;int mid=(left+right)/2;while(right>=left){if(dict[mid]<number){left=mid+1;mid=(left+right)/2;}else if(dict[mid]>number){right=mid-1;mid=(left+right)/2;}else{ret=mid;break;}}return ret;
}

C语言---二分法搜索相关推荐

  1. C语言二分法在一个有序数组查找数的算法(附完整源码)

    C语言二分法在一个有序数组查找数 二分法在一个有序数组查找数 C语言分治法来计算pow(x,y)完整源码(定义,实现,main函数测试) 二分法在一个有序数组查找数 给定一个排序数组和一个数字. 用户 ...

  2. FTServer 1.1 发布,多语言全文搜索服务器

    FTServer是一个简洁的多语言全文搜索服务器,能在低于2M内存的情况下对大于2M的文本进行搜索,并且接近内存搜索速度. 搜索结果排序按照ID顺序,不跳过,不漏词,不多余, 可以按任意组合搜索中文, ...

  3. 二分法求解方程的根java_C语言二分法求解方程根的两种方法

    本文实例为大家分享了C语言二分法求解方程根的具体代码,供大家参考,具体内容如下 对于二分法求根,其实和弦截法思想很像,甚至更简单. 原理:先看如下的图 A,B两个点为跟的一个边界,通过一直缩小跟的边界 ...

  4. C语言二分法查找数组

    C语言二分法查找数组 要实现的功能如下 完整源代码实现如下 要实现的功能如下 采用二分法查找,若找到输出:数所在的下标,否则输出sorry 完整源代码实现如下 #include "stdio ...

  5. C语言——二分法查找一个数_数组

    C语言--二分法查找一个数_数组 问题描述: 针对一个按顺序排列的一维数组,用户输入一个数,如何辨别它是否存在?是数组中的第几位? 编程思想: 采用二分法,以最中间的数和用户输入的数进行比较,逐步缩小 ...

  6. Python实现二分法搜索

    Python实现二分法搜索 二分法是一种效率比较高的搜索方法,时间复杂度为 O(log2n) . 假设有一个1~100之间的数字,你来猜这个数是多少,每猜一次可以得到三种回答:正确.大了或小了.如何保 ...

  7. python 二分查找_Python实现二分法搜索

    二分法是一种效率比较高的搜索方法,时间复杂度为 O(log2n) .假设有一个1~100之间的数字,你来猜这个数是多少,每猜一次可以得到三种回答:正确.大了或小了.如何保证用最少的次数猜对?很多人会想 ...

  8. c语言二分法查找数组元素,c语言二分法如何实现查找数组元素

    c语言二分法实现查找数组元素的方法:1.递归算法,代码为[if(a[mid] == key) return mid]:2.非递归算法,代码为[while( left < right && ...

  9. C语言——二分法求一元三次方程的方程根

    C语言--二分法求一元三次方程的方程根 #include <stdio.h>#include <math.h>int main() {double m, n;double i ...

最新文章

  1. ElasticSearch搜索引擎: 内存分析与设置
  2. RBM/DBN训练中的explaining away概念
  3. 看了5种分布式事务方案,最终选择了Seata,真香!
  4. wordpress的下载和安装介绍
  5. promise async await
  6. 云服务器里面安装虚拟服务器,云服务器里面安装虚拟服务器
  7. scrapy安装_「从零开始Python爬虫」1.8.3 Scrapy-Splash的安装
  8. 拓端tecdat|R语言时间序列和ARIMA模型预测拖拉机销售的制造案例研究
  9. 邪恶力量第一至九季/全集Supernatural迅雷下载
  10. 关于元器件选型需要注意的问题
  11. linux内核的reciprocal_value结构体
  12. 制作字幕.html教程,怎样制作视频字幕
  13. pycharm安装redis
  14. ES2015 Module(模块)
  15. 完美解决小米随身wifi创建网络失败
  16. 小生境方法(niching methods)
  17. 有一种蓝,是神往,是心醉,是心伤
  18. 可取性、适用性、可行性:内存计算技术的影响
  19. 2021CCPC上海省赛题解ABCDEGHIJK
  20. AdrenoProfiler抓取游戏纹理和shader

热门文章

  1. PyTorch Data Parrallel数据并行
  2. IaaS、PaaS 和 SaaS:云服务模型概述
  3. CVPR2020 论文解读:少点目标检测
  4. 2021年大数据ZooKeeper(四):ZooKeeper的shell操作
  5. python 把int类型转bytes以及把bytes 转int 类型(使用方法to_bytes ,from_byte, struct)
  6. CountDownTimer的简单使用
  7. VS各种错误集成总结,持续更新
  8. Day-16 面向对象03 类与类之间的关系
  9. 2022-2028年中国三氟化氮行业市场调查研究及前瞻分析报告
  10. git服务器搭建问题