|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。 ; n4 ^5 j8 x* ~; E
6 \& q6 [4 g# b- K5 q& ?; Z
实例- def search(arr, n, x):
3 E9 z" T1 Y8 V0 `' N0 z, l -
# P* ^- J/ K n0 B" A - for i in range (0, n):
% g6 N+ k% n5 S) D- q j - if (arr[i] == x):
& R4 e- m7 ^+ u; |+ G: K - return i; 7 X. ]6 g( w: n/ G1 ]
- return -1; : X& x7 n8 `, P! F; o: |5 {+ n
- ' ~+ r& Q( E' ?. @
- # 在数组 arr 中查找字符 D: q% F) E8 _9 y# ]0 C
- arr = [ 'A', 'B', 'C', 'D', 'E' ];
$ s& G v% z: E) f5 H - x = 'D';
/ C- N9 c( M! d* B* o - n = len(arr);
, s' m, i4 T8 x, L8 ?( P8 U - result = search(arr, n, x) 6 p% g% X* G8 T* o/ N; F
- if(result == -1): 1 {+ Q' M* A4 a
- print("元素不在数组中")
& ~! Y) R5 z8 I) h - else: 6 t! ^) ]5 N; R
- print("元素在数组中的索引为", result);
复制代码 执行以上代码输出结果为:
1 ?5 |% {% U5 w8 J$ Y. z" b9 v0 i8 B
案例1:- def LinearSearch(list):& D8 U, p1 `9 e0 B {/ O' D
- num = int(input('Number:\t'))
+ v) c* G! B5 D6 a) Q4 Q' B8 g/ K' M - counter = 0
0 A9 I9 f, G% R8 S' O. Z - null = 0, B: E8 O. K# a1 r( Y
- 8 T0 Z; V' L3 l9 b& I
- for i in list:; E. u9 X- y5 k$ `8 N
- if i == num:; E; u& m; B5 }4 G
- print('Find number {} in place {}.'.format(num, counter))
3 B3 `. }2 P3 l( T7 f - else:- b" M F9 D& ]2 s# f
- null += 1& T ^9 _9 ~* h: }7 |' L1 X
- counter += 19 N4 } U9 H7 C" e3 }0 }
- if null == counter:, {; ` ^# g! }
- print('Don\'t find it.')
& h/ z$ S8 N6 ~* } - 7 Y1 u2 G& A3 l% U5 Q" c5 I8 d+ u
- list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0], I j6 e6 U) z" w0 R1 h
- LinearSearch(list)
复制代码 案例2
/ K: T9 P3 S, f5 k- p- def LinearSearch(num=50):
7 \: [* I, m, O5 G$ J - import random
3 t u9 e# `; D - random.seed(888)4 T: C8 _8 b/ d$ @$ l2 `
- data = []& @9 N. K; Z# S4 I7 ^5 {
- for i in range(15):
9 C, s" t. B. s, x5 L - data.append(random.randint(1, 100))
9 I8 P t2 P4 C+ t" |# f - data.sort()
6 N2 `/ y6 X. y0 e* o - print(data)4 i; z+ y2 _6 D. O, ~
- for i in range(0,len(data)):
0 K3 e6 V( O. H6 Y& \8 F0 K - if data[i]==num:
9 u0 S; S0 m4 E - print(i)
6 s$ w7 c7 O g/ b# m8 U& L - break5 N, x# [$ P6 a, N
- else:/ h1 T- E/ M s
- print('查无此数')
6 i2 w" Y/ Q4 f4 l1 Z. M0 X4 @* k- I3 z - LinearSearch()
复制代码
3 U8 p9 X" P3 m" o) c$ g$ H/ ?. Y# ?1 f( _/ Y N5 d+ ?- E0 E- C
|
|