|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。 . t- _$ r& t" ^1 x
! }7 |, o5 n0 V8 A
实例- def search(arr, n, x): - `' T. V: D+ o8 T3 S
- & [7 V. z9 b8 R
- for i in range (0, n):
/ m( N. n& }. J/ F% d - if (arr[i] == x): , G" e4 z! K# T! p* o
- return i;
0 G- u1 q/ d; o0 V - return -1;
0 a9 A! s7 N, o8 A - 9 Q5 P9 J- i W& E. H7 ?7 p
- # 在数组 arr 中查找字符 D2 I* u" C/ m3 F4 T
- arr = [ 'A', 'B', 'C', 'D', 'E' ]; . F% d& B) X( B! Z* W! a; b' ^
- x = 'D'; - n4 O e S% T3 c h! Q; k
- n = len(arr); 6 b* ?2 X1 V/ W
- result = search(arr, n, x) 4 a7 n) J/ H. g, ^3 x* Q2 H
- if(result == -1): 3 P0 Z' H: a% G8 E# @: `
- print("元素不在数组中") - m% d6 W$ z3 N1 _& S
- else: 5 G) D8 m2 g4 G0 ?, j. ~
- print("元素在数组中的索引为", result);
复制代码 执行以上代码输出结果为:+ N* X4 G( {8 S1 J& W; k3 d
) Y" f, b& ]5 [2 ^
案例1:- def LinearSearch(list):3 d+ S) a9 q; Q' L. ~ u& I' y6 I7 Q
- num = int(input('Number:\t'))
& @1 L7 ]% t! g - counter = 0, p. P# x5 H5 p; ~ `
- null = 0( J+ g1 z4 S; u( k: n
- , t' V( t0 G# K$ H( U6 C/ C% h
- for i in list:
7 p1 c4 l! ~# E: r, ` - if i == num:$ d- j% U1 R2 \- W% S3 }6 A/ p4 c* c
- print('Find number {} in place {}.'.format(num, counter))
4 B* [7 y+ U5 M; c - else:" K8 F! L8 D2 x4 O+ b
- null += 1 i5 n$ N0 M3 r" u; t9 E" L+ N; B4 P" D
- counter += 1
1 `1 Q7 S/ q) N7 b - if null == counter:( E/ I) K. w' ]& @% B b
- print('Don\'t find it.')
( q) K3 O$ P% K
/ }8 d) a1 n$ C4 j2 l- list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]
3 j- n* V" ^, K4 W f' b - LinearSearch(list)
复制代码 案例2
5 ?- Z, k9 X6 u8 ~1 N# {1 b5 c/ y- def LinearSearch(num=50):4 K+ o ?4 u% l* E
- import random* e3 G! U; f$ a: x
- random.seed(888)
2 Q# u2 ~5 v$ i5 _ - data = []: h- U$ X! b# j, |- E
- for i in range(15): w* _0 T0 k0 f
- data.append(random.randint(1, 100))/ j# O$ v2 ~" [0 S; Z/ y) w
- data.sort()
5 t0 k9 s- Q" t) g, b' n - print(data)
) M& d; A2 m: b- f( X9 L* d - for i in range(0,len(data)):
2 z! `1 e% |0 U% n* p1 @6 c - if data[i]==num:
4 V p0 A2 Y6 u5 p& j' { - print(i)
- L; _& V8 C. g, w8 q - break: }* V* N Y$ S( r: S
- else:. G+ c T1 b. G6 [- t, z
- print('查无此数')0 k8 M, ]* ^3 s
- LinearSearch()
复制代码
; R7 K9 J7 k) R( ?3 ^' m/ C B8 I2 M8 _ }, t/ U
|
|