N个有序整数数列已放在一维数组中,利用二分查找法查找整数m在数组中的位置,若找到,则输出其下标值;反之,则输出 “Not be found”
#include <stdio.h>
#define N 10
/*
N个有序整数数列已放在一维数组中,利用二分查找法查找整数m在数组中的位置,若找到,则输出其下标值;反之,则输出 “Not be found”
*/
int main() { int i; int low = 0; int high = N - 1; int mid; int k = -1; int m; int a[N] = {-3,4,7,9,13,45,67,89,100,180};
printf("数组中的数据如下: "); for(i = 0; i < N; i++) { printf("%4d ",a[i]); } printf(" ");
printf("请输入您想要查找得数字:"); scanf("%d",&m);
while(low <= high) { mid = (low + high) / 2; if(m < a[mid]) { high = mid - 1; } else { if(m > a[mid]) { low = mid + 1; } else { k = mid; break; } } }
if(k >= 0) { printf("wei zhi shi %d,zhishi %d ",k,m); } else { printf("Not find ! "); }
return 0; }
/*
N个有序整数数列已放在一维数组中,利用二分查找法查找整数m在数组中的位置,若找到,则输出其下标值;反之,则输出 “Not be found”
*/
int main() { int i; int low = 0; int high = N - 1; int mid; int k = -1; int m; int a[N] = {-3,4,7,9,13,45,67,89,100,180};
printf("数组中的数据如下: "); for(i = 0; i < N; i++) { printf("%4d ",a[i]); } printf(" ");
printf("请输入您想要查找得数字:"); scanf("%d",&m);
while(low <= high) { mid = (low + high) / 2; if(m < a[mid]) { high = mid - 1; } else { if(m > a[mid]) { low = mid + 1; } else { k = mid; break; } } }
if(k >= 0) { printf("wei zhi shi %d,zhishi %d ",k,m); } else { printf("Not find ! "); }
return 0; }
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。