|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。
$ s) c2 _! O; l1 a$ X* J
9 b2 h0 {2 h% S) e/ j实例- def search(arr, n, x): 9 F6 s3 ~7 Q9 C8 \
-
& E, U$ \: K8 Q) N1 w9 C7 Z - for i in range (0, n):
: r+ C& b8 ], m/ D1 j, |2 g7 R( i; b - if (arr[i] == x): 2 _8 \$ ^ C# L/ V( c! x, ^8 E
- return i;
! [5 d* ~# w4 _, d1 [ - return -1; @2 k$ n! Z% {
-
' K% V; n! _4 j - # 在数组 arr 中查找字符 D
+ k% {4 T- l) \) J9 x - arr = [ 'A', 'B', 'C', 'D', 'E' ]; k/ s/ m9 l4 O2 R) N
- x = 'D';
0 q1 K& z7 m- o5 Q* x; X - n = len(arr); : F) x C L# e0 h4 w
- result = search(arr, n, x) - h: D1 Q3 c7 l4 b" O
- if(result == -1):
- E: |0 y d& q9 R) e - print("元素不在数组中") * }3 [1 q1 u6 E) E i3 m' h1 [- g/ g
- else: 9 t; U. g @5 _: I
- print("元素在数组中的索引为", result);
复制代码 执行以上代码输出结果为:
9 f' D, f/ t. e2 c- G! w' n* k9 S4 o3 v% X5 j# r. G
案例1:- def LinearSearch(list):4 f1 d3 J* H# {; e' d
- num = int(input('Number:\t'))1 N" r' \( ^. i I$ |* z( ?+ W
- counter = 04 K1 j' u( y( I- | G
- null = 08 h3 j5 R( i$ c5 `5 [, n
2 v0 q: M, f% P8 t, b0 P/ n- for i in list:
6 g) ^, K" C# V! F" ? - if i == num:
1 Z. _# R7 p! p1 }, E3 `; \ - print('Find number {} in place {}.'.format(num, counter))
2 j3 N d3 q/ v M - else:! T c" ?8 f8 g' b
- null += 1
8 s" U/ |; K$ j: f( f, c - counter += 1; S8 w$ H! P7 d. x' O8 b: f8 O6 K; }% L
- if null == counter:# B$ n3 l0 \+ v5 h+ r
- print('Don\'t find it.')
: ^- v' d& x3 `$ v% g - 8 f. }' ?- l. O1 r; l
- list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]
4 W4 `" Q. b$ ?) k - LinearSearch(list)
复制代码 案例2
+ b/ p- ?( s/ ]/ L7 g1 I1 U9 T- def LinearSearch(num=50):
, R+ V( U9 Q. L7 W - import random' v" E! r X0 v- s. E
- random.seed(888)
. T5 H" O% ]/ g5 u. e3 I* w - data = []
' U0 E! W) h5 l. X - for i in range(15):! ^7 A9 G( z* D% J8 {' o
- data.append(random.randint(1, 100))& x ^$ ~' ^9 H$ ?' v
- data.sort()' q' c: C; K" p/ {; c: }7 ?4 f
- print(data)# B* }4 G4 K: X2 A& r; i; u7 l
- for i in range(0,len(data)):
( G- x5 X- X! y - if data[i]==num:
. }6 b4 K! H( I0 }) ?9 H3 C - print(i)
# ^2 O/ w% L. t - break
0 N+ E3 O9 N) ], F - else:: N' f# s- H& }) Y/ E% H
- print('查无此数')2 b, z) x4 l0 E* c
- LinearSearch()
复制代码 , c% ?1 v6 b# A7 f7 R
# s9 Y4 [$ \$ m. l
|
|