C语言:顺序查找和二分查找
2017-07-26 09:59
239 查看
任务代码:
顺序查找元素:
二分查找方法:
执行情况:
![](https://img-blog.csdn.net/20170726095939562)
知识总结:
![](https://img-blog.csdn.net/20170726093838645)
![](https://img-blog.csdn.net/20170726094624787)
!!!!局限性是,二分查找必须针对有序的,无重复数列!!!!在使用的时候必须先将数列有序化,如果要技术出现次数必须使用其他算法!
心得体会;
顺序查找元素:
#include <stdio.h> #define SIZE 10 int main() { int a[SIZE]={1,2,3,4,5,6,7,8,9,10}; int index=-1;//如果末尾没有找到,默认函数为=-1 int i,number; printf("请输入要查找的数据:"); scanf("%d",&number); //顺序查找 for(i=0;i<SIZE;i++) { if(a[i]==number) { index=i; break; } } //输出结果 if(index>0) { printf("找到了这个数%d,位于数组的第%d个!",number,index+1); } else { printf("没有找到数字!"); } return 0; }
二分查找方法:
#include <stdio.h> #define SIZE 10 int main() { int a[SIZE]={1,2,3,4,5,6,7,8,9,10}; int index=-1;//如果末尾没有找到,默认函数为=-1 int i,key; printf("请输入要查找的数据:"); scanf("%d",&key); //二分查找 /*二分查找的前提是你所查找的数字必须已经是会有序数组!!!!*/ int low,high,mid; low=0;//代表数组第一个数 high=SIZE-1;//代表数组最后一个数 while(low<=high)//在没有查找到最后一个数的情况下继续执行 { mid=(low+high)/2;//设置mid为数组中间那个数 if(a[mid]==key)//恰好等于的情况 { index=mid; break; } else if(a[mid]>key) { high=mid-1;//将mid赋值给高的那一边的下一位 } else { low=mid+1;//将mid 赋值给低的那一边的下一位 } } //输出结果 if(index>0) { printf("找到了这个数%d,位于数组的第%d个!",key,index+1); } else { printf("没有找到数字!"); } return 0; }
执行情况:
知识总结:
!!!!局限性是,二分查找必须针对有序的,无重复数列!!!!在使用的时候必须先将数列有序化,如果要技术出现次数必须使用其他算法!
心得体会;
相关文章推荐
- c语言归并、选择、直接插入、冒泡、快速、堆排序与顺序、二分查找
- C语言查找算法之顺序查找、二分查找(折半查找)
- C语言:顺序,二分查找,冒泡排序实践项目
- C语言【顺序表】冒泡排序,一次选出最大最小的数据,二分查找,初始化顺序表
- C语言实现数组二分查找与顺序查找
- 顺序表查找(顺序查找、二分查找) C语言实现
- C语言【顺序表】冒泡排序,一次选出最大最小的数据,二分查找,初始化顺序表
- 顺序查找、二分查找
- 静态表查找(顺序查找,二分查找,斐波那契查找)
- 【c语言】二分查找
- php顺序、二分查找
- C语言快速排序与二分查找算法示例
- 基本查找算法 PHP 实现 保存 顺序查找,二分查找 分块查找
- C语言排序(5)___青蛙过河——(二分查找)
- 中文截取无乱码、 顺序查找和二分查找函数
- 二分查找——C语言
- Java必知必会查找算法:顺序查找、二分查找
- 二分查找C语言实现
- C语言实现直接插入排序,冒泡排序以及二分查找(巩固理解记忆)
- C语言设置监视哨的顺序查找、折半查找算法的实现