二分查找
二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(){
int arr[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int left = 0, right = 9;
int to_find;
printf("请输入要查找的数字:");
scanf("%d", &to_find);
while (left <= right) {
int mid = (left + right) / 2;
if (arr[mid] < to_find){
left = mid + 1;
}
else if (arr[mid]>to_find){
right = mid - 1;
}
else{
break;
}
}
if (left <= right){
printf("找到了\n");
}
else{
printf("没找到\n");
}
system("pause");
return 0;
}
编程思路:
首先键入要查找的元素;
其次是取中间元素下标;
第三步是判断待查找元素与以mid为下标的元素进行比对,确定下次要查找的元素;
最后,若遍历元素一半以上找到元素,则打印找到了,若是没找到,则打印没找到。