我觉得要了解这两种策略,除了多刷题没别的方法。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 |
二分搜索<br>#include <stdio.h> #include <stdlib.h> int BinSerach( int
a[], int
first, int
LEN, int
j) { if (j == a[(first + LEN)/2]) return
j; if (j < a[(first + LEN)/2]) return
BinSerach(a, first, (first + LEN)/2, j); if (j > a[(first + LEN)/2]) return
BinSerach(a, (first + LEN)/2, LEN, j); printf( "no this intger\n" ); } int
main() { const
int LEN = 1000; int
a[LEN]; int
i; for (i = 0; i < LEN; i++) a[i] = i; int
j; printf( "请输入数字:" ); scanf( "%d" , &j); if (j > a[LEN - 1]) { printf( "no seek" ); exit(0); } getchar(); getchar(); j = BinSerach(a, 0, LEN - 1,j); printf( "output:%d \n" , j); } |
原文:http://www.cnblogs.com/xiongge/p/3600819.html