|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。 & z: G# s% A' j6 H6 B
, D* W2 G" a- s+ w4 ^
实例- def search(arr, n, x):
0 w, J. T( O5 U; A1 Q - . a# z) l9 p( n3 d- h5 B0 ]+ V. R
- for i in range (0, n):
1 D& L+ d( e& B* w' M2 E2 Y& ~ - if (arr[i] == x):
- H" P A4 o3 \, \ p. o! G - return i; + o9 X0 F% D8 s5 k
- return -1; * A% }8 E0 Q+ L+ ~" |
- ! y* m$ R3 ]9 a
- # 在数组 arr 中查找字符 D9 c9 `' j, K5 C& f2 @; @
- arr = [ 'A', 'B', 'C', 'D', 'E' ];
: n8 `) W# D% J$ t" a - x = 'D';
8 E7 s7 e, e6 U4 w - n = len(arr); 0 r+ n& M8 ^* Q8 ]9 r5 L
- result = search(arr, n, x) " e' T8 x9 P3 F( H% X) \9 C
- if(result == -1):
, S, l) l0 e: z/ d5 T9 |3 b - print("元素不在数组中")
, ~' J# K/ J! T - else:
! W+ A) f* Q) m4 {- p0 `5 l6 b - print("元素在数组中的索引为", result);
复制代码 执行以上代码输出结果为:# R* N1 V7 U ]* C6 Y! l8 D
! w* \5 W6 R i4 z) q
案例1:- def LinearSearch(list):
* ~0 i, p1 O' @ - num = int(input('Number:\t'))( T# J3 b! v; I* Z
- counter = 0
3 ]0 Q% l% ]- R/ T - null = 0
% E; T S9 I3 V; Q
6 K0 H; f+ a" o! g- for i in list:
| z! q8 k% E/ H - if i == num:
2 Y4 @* \5 J& r0 h - print('Find number {} in place {}.'.format(num, counter))
% O8 J; n& H6 P8 c - else:
3 c* l S$ S" ~2 S - null += 1% w% o. L% K% x" E! s, i [
- counter += 1: X" ?# `8 e. a3 p' x
- if null == counter:
. N( W5 V6 c! o, P, v5 g U - print('Don\'t find it.')
1 C, e$ H; s2 o# U6 K6 @1 e8 I. S - & n" g+ E! F) r0 g. x
- list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]
/ `, `4 M8 d# g/ B6 j. Q - LinearSearch(list)
复制代码 案例2
" z- p) _5 M Y; V( f) Q# ~ U- def LinearSearch(num=50):
- F6 N* {" b9 h+ Z [- i9 } - import random/ h, J$ Y, a- t
- random.seed(888)
8 _( m0 F( l( C6 V: s! b7 n4 K/ w - data = []' _3 y, ?8 x' f1 ~/ P f0 {' W
- for i in range(15):
7 w2 v- q+ Z: ~" T% w' x - data.append(random.randint(1, 100))
% z6 {4 v a( o0 j* y - data.sort()
4 d7 k) c2 F5 O# m- t" d' T3 U6 l( R - print(data)
# x# i y' j# M# w! C, e - for i in range(0,len(data)):
( e- C% p; ~' f" K - if data[i]==num:/ M& w. y% a! d3 K: W- s
- print(i)7 w. R+ D8 @6 S5 n
- break/ L1 I J; d8 N2 H7 |" y2 s; ]
- else:; K: X( q2 T! T b! V/ E
- print('查无此数')
* L3 [( G. z, b( o" {2 t. \! f - LinearSearch()
复制代码 6 @+ A1 T) l: z1 [; f% o
9 S0 i4 }. K: l" C s" f- i
|
|