数据结构之线性查找和折半查找

94 阅读1分钟

1、线性查找

比如字符串 char s[] = "chenyu";

如果我们是线性查找的话,就是从字符‘c’依次到字符串结尾‘u’查找

2、折半查找

注意查找之前必须是有序的

比如整形数组 int a[10] = {1, 2, 7, 9, 10};

查找数字2

我们可以定义 首和尾巴,拿需要查找的数据和 首和尾巴下表除以2这个坐标数据对比

如果这个查找的数字比,中间的数字小,我们就在左边区间查找,反之,在右边查找

依次类推

 

3、代码实现

 

#include<stdio.h>

int binary_serch(int a[], int num, int length);
int string_index(char c);
char name[] = "chenyu";


int main()
{
    printf("%d,%d\n", string_index('y'), string_index('o'));
    int a[5] = {1, 3, 4, 5, 7};
    int length = sizeof(a)/sizeof(a[0]);
    printf("length:%d\n", length);
    printf("%d,%d", binary_serch(a, 5, length), binary_serch(a, 2, length));
    return 0;
}

int string_index(char c)
{
    int i = 0;
    while(name[i] != '\0') {
       if (c &