首页 > 代码库 > 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语言查找算法