#define _CRT_SECURE_NO_WARNINGS 1
#include"stdio.h"
int binsearch(int x, int v[], int n);
int main()
{
int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, };
//如果不为顺序数组可插入排序算法(但我还不会写)
int num = sizeof arr / sizeof arr[0];
int n;
int dis = 1;
printf("请输入要查找的数据:");
do
{
scanf("%d", &n);
if (binsearch(num, arr, n) != 0)
{
printf("你要查找的数据在第%d位", binsearch(num, arr, n)+1);
dis = 0;
}
else { printf("请重新输入你要查找的数:\n"); }
}
while (dis);
return 0;
}
int binsearch(int x, int v[], int n)//折半查找
{
int i = 0;
int j = 0;
i = (0 + x +1) / 2;
while (n > v[i])
{
i = (i + x + 1) / 2;
}
while (n < v[i])
{
i = (0 + i + 1) / 2;
}
return v[i] == n ? i : j;
}
基于顺序数组用折半查找的找数据,找到为止
于 2023-02-27 10:54:52 首次发布