首页 > 代码库 > C语言查找算法
C语言查找算法
/**
查找(数组)
1> 顺序查找 : 就是遍历数组每一个元素同该元素比较,但是问题是效率比较低
2> 折半查找 : 条件是数组必须是有顺序的
*/
#include <stdio.h>
#define n 2
int main()
{
// 折半查找
/*
思路:将该元素同中间元素比较,如果有则存在,否则,判断该元素在哪半部分,继续查找;
*/
// 任意输入整数x,在有顺序的数组中查找是否有同x值相同的元素
// 定义输入数据
int x = -1;
// 数组array
int array[10] = {2, 10, 19, 22, 34, 36, 55, 67, 76, 88};
scanf("%d", &x);
// 定义开始元素下标start, 尾标end, 中间元素下标mid
int start = 0;
int end = 9;
int mid = (start + end)/2;
while (array[mid] != x && (end > start)){
if (x < array[mid]) {
end = mid - 1;
}else{
start = mid + 1;
}
mid = (start + end)/2;
}
printf("%d\n", mid);
return 0;
}
C语言查找算法