【分治】二分查找
设序列n
1.分:在序列n中找到key,相当于在left, right中找到key即可
2.治:每次取middle与key比较,若相同则返回middle + 1,否则返回-1
#include <stdio.h> int Divide_conquer(int n_Susake[], int key, int length) { int left = 0, right = length + 1, middle; while (left != right) { middle = (left + right) / 2; if (n_Susake[middle] == key) return middle + 1; else if (n_Susake[middle] < key) left = middle + 1; else right = middle - 1; } return -1; } int main(int argc, char *argv[]) { int n_Susake[] = { 1, 2, 3, 4, 5 }; printf("%d\n", Divide_conquer(n_Susake, 4, 5)); return 0; }