0
点赞
收藏
分享

微信扫一扫

顺序查找and折半查找(有序数组)

1.顺序查找    时间复杂度(n)

​#include <stdio.h>​

​int main(){​

​int arr[10] = {1,2,3,4,5,6,7,8,9,10}​

​int i=0;​

​int size = sizeof(arr[])/sizeof(arr[0]);​

​int m;​

​scanf("要查找%d",&m);​

​for(i=0;i<size;i++){​

​if(arr[i]==m)​

​printf("查找成功,元素位置为%d",i);​

​break;​

​}​

​if(i==size)​

​printf("查找失败");​

​}​

2.折半查找    时间复杂度(log2n)

​#include <stdio.h>​

​int main(){​

​int arr[10] = {1,2,3,4,5,6,7,8,9,10};​

​int m;​

​scanf("输入查找元素%d",&m);​

​int low = 0;   //指向靠前元素​

​int high = 9;  //指向最后元素​

​int mid;  //指向中间位置​

​while (low<=high){​

​mid = (low+high)/2;​

​if(arr[mid]<m)​

​low = mid+1;​

​else if(arr[mid]>m)​

​high = mid-1;​

​else if(arr[mid]=m)​

​printf("查找成功,元素位置为%d",mid);​

​break;​

​}​

​if(low>high)​

​printf("查找失败");​

​}​

举报

相关推荐

0 条评论