C语言二分法查找数列中指定数字
在公茂果老师的课件中,出现的好多具体的算法例子,这里,跟踪给出,二分法查找的指定数字的代码:
- 实现环境:VMware下的Ubuntu 17.4
- 编译环境:自带编译器。
下面给出Ubuntu下,编译环境的操作过程:
- 同时按下“ALT”+"CRTL"+"t",弹出终端界面
- 创建:命令 gedit main.c gedit为创建命令, 创建C文件,名称为main
- 编辑:命令 gtouch main.c 弹出文本框,进行编辑
- 编译:"ALT"+"F4"关掉文本框,进入终端界面,命令 gccmain.c 进行编译,若无错误,会出现下一个命令提示符 g++是对C++文件的编译
- 结果: ./a.out 即可查看
下面给出一个简单二分法查找示例:
1 #include<stdio.h> 2 main() 3 { 4 int num[]={1,2,3,4,5,6,7,8,9,10}; 5 int left=0,right=9,a; 6 int find; 7 scanf("%d",&find); 8 while(left<right) 9 { 10 a=(left+right)/2; 11 if(num[a]==find) 12 { 13 printf("所找的数在第%d个",a+1); 14 break; 15 } 16 else if(find>num[a]) 17 left=a+1; 18 else 19 right=a-1; 20 } 21 if(left<right) 22 printf("没有这个数"); 23 }