|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。 4 o, k7 Y p3 k# h4 l* V
6 |5 J0 G5 i, _
实例- def search(arr, n, x):
9 O/ Z# h5 b+ V+ O - 6 a) T( v7 b, j9 K, {
- for i in range (0, n): + Z* t( H. q; s Q/ R3 I$ f
- if (arr[i] == x):
5 D2 A2 y$ i/ }0 G - return i;
4 w/ `) g6 Y. H5 P - return -1; % @6 Y; U! Y) t" J& g
- . o5 S% u* O# \1 Q4 i( v8 V: w
- # 在数组 arr 中查找字符 D
$ E- W' @2 P r" q; B7 [0 F - arr = [ 'A', 'B', 'C', 'D', 'E' ];
3 g' U$ r% b- q7 [/ B+ _7 |: m - x = 'D'; , C" J$ r3 L. a4 \3 ]& q! t
- n = len(arr);
& ]2 i' J+ n1 P/ o7 H K2 e8 T ] - result = search(arr, n, x)
9 _3 P2 S% B% E# h" P0 x - if(result == -1): - G) Q0 h, v7 j
- print("元素不在数组中")
1 }" J* M7 S) t+ `8 F4 U' Z5 Y - else: / A" C" i0 t t0 u7 o
- print("元素在数组中的索引为", result);
复制代码 执行以上代码输出结果为:
" Y# n6 C. O, }% g0 q" p
- R- a# x4 E+ S$ f/ p- e案例1:- def LinearSearch(list):% G! y3 J1 o, Q9 I% v9 q5 L# }
- num = int(input('Number:\t'))3 K2 y1 v! G- j' x2 _5 X/ c3 E
- counter = 0
, v. t m6 G) W/ [9 R/ j r - null = 0
# T" j6 b& n5 L$ Q) O) W
e. _0 ^& \: U- for i in list:
) [- B, \/ M' k2 q6 W; U* z: P - if i == num:
4 m' k2 @0 ]/ w# @ - print('Find number {} in place {}.'.format(num, counter))( b* H3 C8 i* }) B! ? h
- else:
' h/ ~" N- K! r - null += 1$ j5 N# n' k B: Q6 {" A
- counter += 1
# T# `+ d0 A% G+ {" A: I - if null == counter:0 l* P5 S% A# b. @5 z; A) \0 O# e
- print('Don\'t find it.')
! f* V5 U" B: _6 F l
; F" _% e' t( T- A. B S- list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]
+ D" x, W$ ]9 R - LinearSearch(list)
复制代码 案例2
A* ?' ]+ u+ Z- def LinearSearch(num=50):
0 a! t8 s) j6 n( p9 L; v/ O5 e - import random$ t8 V. E9 H) m" S) v" Q: U
- random.seed(888)1 c, B& e0 f3 Q m6 W
- data = []
* [, o5 D* }9 o7 e1 y - for i in range(15):4 `& k, c* u: W9 X
- data.append(random.randint(1, 100))
5 W3 O/ Q6 \$ f$ e2 U# A' p - data.sort()# Y% n5 q! p0 m7 |( N% @ p, Q
- print(data)9 `0 |5 k0 l v: K
- for i in range(0,len(data)):
$ ~9 w4 ^; v' c: Z. r' k3 L - if data[i]==num:7 t' ?9 j. M( O( M$ X
- print(i): W* O0 W+ ^2 x0 y" G `
- break
& ~2 m' o E6 X( U/ K - else:
/ _4 r+ \- i; `9 E% v5 D - print('查无此数')
% f! G( M. i& G a, e. I7 `, Y5 b1 F - LinearSearch()
复制代码
+ p, J, p/ L- K; D9 q& V8 {% g$ U; H' o2 i$ O! ]0 S) f, x; C
|
|