写代码可以在整型有序数组中查找想要的数字, 找到了返回下标,找不到返回 - 1.(折半查找)

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int main(){
 int A[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 };
 int i,key;
 int left = 0;
 int right = sizeof(A) / sizeof(A[0]) - 1;
 int n = sizeof(A) / sizeof(A[0]) ;
 int mid = 0;
 printf("请输入您所要查找的数字:\n");
 scanf("%d", &key);
 while (left <= right){
  mid = (left + right) / 2;
  if (key < A[mid]){
   right = mid - 1;
  }
  if (key > A[mid]){
   left = mid + 1;
  }
  else {
   break;
  }
 }
 if (left <= right){
  printf("找到了,下标是%d\n", left);
 }
 else {
  printf("-1\n");
 }
 system("pause");
 return 0;
}
发布了42 篇原创文章 · 获赞 13 · 访问量 6533

猜你喜欢

转载自blog.csdn.net/weixin_43508555/article/details/84147290