#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#define max_num 100
#define SWAP(X, Y, TEMP) ((TEMP = X), (X = Y), (Y = TEMP))
int main(int argc, char *argv[])
{
int list[max_num];
int i, j, num, min, temp;
int mid, left = 0, right = 0, find_data, find_flag = -1;
printf("Please input number:");
scanf("%d", &num);
if (num < 0 || num > max_num) {
fprintf(stderr, "invalid data\n");
exit(1);
}
for (i = 0; i < num; i++) {
list[i] = rand() % 1000;
printf("%d ", list[i]);
}
printf("\n");
for (i = 0; i < num; i++) {
min = i;
for (j = i + 1; j < num; j ++) {
if (list[j] < list[min])
min = j;
}
SWAP(list[i], list[min], temp);
}
printf("After select sort result:\n");
for (i = 0; i < num; i ++)
printf("%d ", list[i]);
printf("\n");
printf("Please input find data:");
scanf("%d", &find_data);
right = num - 1;
while (left <= right) {
mid = (left + right) / 2;
if (list[mid] == find_data) {
find_flag = mid;
break;
} else if (list[mid] < find_data) {
left = mid + 1;
} else
right = mid - 1;
}
if (find_flag != -1) {
printf("Find data is sign: %d\n", find_flag);
}
}
折半查找法
原创
©著作权归作者所有:来自51CTO博客作者JDSH0224的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
C程序折半查找法
C程序折半查找法,利用下标中间值查找要找的数字
C程序折 半查 找法 -
折半查找法(二分查找)
折半查找法(二分查找) 概念:分查找又称折半查找,优点是比较次
二分查找 二分法 折半查找 有序表 -
python 折半法 python递归法折半查找
二分查找二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。
python 折半法 数据结构与算法 二分查找 折半查找 时间复杂度