|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。 ; C6 v& o* R- `+ Z9 B* z
% }0 T% d" @( A( g, R, H0 [实例- def search(arr, n, x): ; F/ ~- y/ M7 g$ n2 e+ x$ r
- - P- V9 {( r1 S2 {( T2 r
- for i in range (0, n): . E$ E$ h. e( W9 q
- if (arr[i] == x): 5 E t9 i1 ~; L) ~
- return i; ) n3 J8 l: A0 U. h! W# H
- return -1; % p! e& X+ Y- M0 W& P/ t1 P0 [
- + t- N6 i7 Z* y% E7 `
- # 在数组 arr 中查找字符 D
5 R/ k# e/ R0 v( ?% ^+ H - arr = [ 'A', 'B', 'C', 'D', 'E' ]; $ v' j' l: Z* j+ o
- x = 'D'; ! f) b: {7 R ~5 I0 G
- n = len(arr);
8 T4 k' O. M! c3 W6 m, B% [ - result = search(arr, n, x)
; m- }- R+ ?6 ]/ o' A4 V9 Z - if(result == -1):
0 F4 B- `9 \7 w, {; k9 L& | - print("元素不在数组中") 0 d7 ^: X0 `' k& v; X
- else:
0 ~# t* @; j8 T: p, i2 S - print("元素在数组中的索引为", result);
复制代码 执行以上代码输出结果为:
: c/ I% e! M/ X0 L$ J' m9 `5 \/ z3 m+ {8 |3 O) U
案例1:- def LinearSearch(list):$ | D1 a2 M2 h2 Q* W8 Q5 ?
- num = int(input('Number:\t'))" H$ j/ B# J4 b
- counter = 0& ^( g2 D) n9 P/ n2 v3 ~1 [0 n6 q
- null = 0+ M' m; ^& u1 d: ^1 T3 w
- ( v4 ?7 u/ A( x9 ?* {8 H
- for i in list:
: ~" p- o9 c+ [- {3 Q) Y3 F - if i == num:! N, X1 P% o0 j* j7 h. W5 X1 E
- print('Find number {} in place {}.'.format(num, counter))
; b. ]9 K4 l$ p" B z! u! _ - else:
: I+ h3 T/ Q: P3 d% H0 Z* [- G8 `/ [ - null += 1$ ?+ w Y4 A* T% }- t/ W
- counter += 1
/ T: x" ?4 \+ u& }% P0 A0 o1 S - if null == counter:& T2 b, e) V4 Q* W& ]9 n6 ^
- print('Don\'t find it.')3 C6 V$ e3 V8 ? ?! k
- 0 o; P7 @: E. h; I" o: {- z
- list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]# k C- b# J5 m: N+ a
- LinearSearch(list)
复制代码 案例26 t4 @: o( p/ ?- H
- def LinearSearch(num=50):
' ]7 {! @/ i3 a8 ?0 _1 u1 H0 S - import random0 Y- T' `$ G8 e& y& H
- random.seed(888)" \% h) b# T5 n+ ~& b+ `. j6 [
- data = []" M7 ^2 W* p, q! B+ G
- for i in range(15):0 z6 R9 ], T5 C" B
- data.append(random.randint(1, 100))
: g; y7 ?5 w, c0 k4 j6 s - data.sort()0 n. J I& P- c8 w3 p
- print(data)3 j' g" A4 b' z7 b) A9 u7 e
- for i in range(0,len(data)):
! C6 f$ @: S* R) O - if data[i]==num:. G; r) @$ M0 Z) I1 p/ [* z
- print(i)* |# g( a! B/ Z( r- o
- break5 N9 j' p* T; R8 W/ H
- else:! U7 B* A: ?6 x7 O* b# U
- print('查无此数')
( K3 T. v( H; Z. D0 W* Z _ - LinearSearch()
复制代码 " u2 g( V; g) V* U' d( J
7 D4 x9 D. i, {/ b |
|