C语言查找算法之顺序查找、二分查找(折半查找)
2018-01-16 14:18
246 查看
原文链接:https://www.geek-share.com/detail/2727083480.html
C语言查找算法之顺序查找、二分查找(折半查找),最近考试要用到,网上也有很多例子,我觉得还是自己写的看得懂一些。
- 顺序查找
/*顺序查找 顺序查找是在一个已知无(或有序)序队列中找出与给定关键字相同的数的具体位置。 原理是让关键字与队列中的数从最后一个开始(或第一个)逐个比较,直到找出与给定关键字相同的数为止
它的缺点是效率低下 */ #include<stdio.h> void main(){ int i ,num,arr[10]={3,6,9,10,65,23,76,45,2,11}; int size = sizeof(arr)/sizeof(int); printf("请输入要查询的值:"); scanf("%d",&num); for(i=0;i<size;i++){ if(num==arr[i]){ break; } } if(i!=size) printf("要查询的值%d在第%d个位置",num,i+1); else printf("未找到值%d",num); getch(); } - 二分查找
/*二分查找 二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。 但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。 */ #include<stdio.h> void main(){ int mid,low,high,num,arr[10]={3,6,9,10,23,65,76,87,88,213}; int size = sizeof(arr)/sizeof(int); printf("请输入要查询的值:"); scanf("%d",&num); low = 0; high = size;//初始low和high的值 while(low<=high){ mid = (low+high)/2;//取中值 if(arr[mid]==num) break;//找到,结束循环此时low<=high else if(arr[mid] < num) low = mid+1;//如果目标值比当前中间值大,说明目标值在中间值的后面low移动到mid+1 else high = mid - 1; } if(low <= high)//找到,输出 printf("要查询的值%d在第%d个位置",num,mid+1); else //未找到 printf("未找到值%d",num); getch(); }
转载于:https://www.cnblogs.com/hyyq/p/8296387.html
相关文章推荐
- C语言查找算法之顺序查找、二分查找(折半查找)
- C语言实现折半查找(二分查找)的算法
- 顺序表查找(顺序查找、二分查找) C语言实现
- 折半查找,也称二分查找、二分搜索,是一种在有序数组中查找某一特定元素的搜索算法。
- C语言:顺序查找和二分查找
- C语言二分查找算法及实现代码
- 算法:静态查找表(Static Search Table)(顺序查找、二分查找、插值查找、斐波纳契查找)
- 算法---冒泡排序,快速排序,二分查找(折半查找),选择排序,插入排序
- 数据结构与算法-折半查找(二分查找)
- C语言实现数组二分查找与顺序查找
- C语言实现选择、冒泡、直接插入、归并、希尔、快速、堆排序与顺序、二分查找排序
- php二分查找、顺序查找算法
- 【数据结构与算法】【查找】折半查找(二分查找)的代码实现
- C语言:顺序,二分查找,冒泡排序实践项目
- 【算法分析】查找算法:二分查找、顺序查找
- 使用PHP描述顺序查找和二分查找(也叫做折半查找)算法,顺序查找必须考虑效率,对象可以是一个有序数组
- 复习C语言算法——二分查找
- 算法之顺序查找【C语言】
- C语言【顺序表】冒泡排序,一次选出最大最小的数据,二分查找,初始化顺序表
- 数据结构与算法--查找之顺序查找和二分查找