我觉得要了解这两种策略,除了多刷题没别的方法。
|
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