#include <stdio.h> int main(){ //折半查找在顺序元素下进行查询,用脚标中间查找,后分左右两边重复 int arr[]={1,2,3,4,5,6,7,8,9};//9,8,7,6,5,4,3,2,1-----规定数组是顺序的 int left = 0; int sz = sizeof(arr)/sizeof(arr[0]); int right = sz - 1; //右下标 int var; scanf("%d",&var); while(left <= right) // 规定是顺序的数组 { int mid = (left + right)/2; if(arr[mid] > var ) //目标值大于中间,在左边查 { right = mid - 1; } else if(arr[mid] < var) //目标值小于中间,在右边查 { left = mid + 1; } else //目标值等于中间值 { printf("Finding :%d",mid); break; } } if(left > right){ printf("fail"); } }
折半查找算法(前提:数组是顺序的)
于 2024-09-02 11:46:29 首次发布