|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。
0 Q) z1 |( J: Z# @9 h8 M
$ B/ g$ G5 S) O6 b: V( @实例- def search(arr, n, x):
( p6 c1 f1 a* s$ O5 D6 D - / F' t" W$ i6 I
- for i in range (0, n): * ]7 O" m2 y4 J1 |+ Y8 ?% r: s
- if (arr[i] == x): ' m: `% U' u8 ?% G3 m
- return i; + M3 W3 s$ w5 Q8 A1 U
- return -1; $ [% [0 d3 t2 c* w/ @) `
- 2 D) d7 C7 Y L. U) D
- # 在数组 arr 中查找字符 D
: H" N& K9 q. L$ G! j3 y& P$ I& j! B' g - arr = [ 'A', 'B', 'C', 'D', 'E' ]; 1 e1 E) j, }3 k* \7 ?& {
- x = 'D'; * i9 ?3 s. a) S$ x4 N" C% c
- n = len(arr);
, J z- u% u' I Q, X - result = search(arr, n, x) ( O5 r8 z" [+ M6 u' N, M: S8 r0 g
- if(result == -1): , a* F, E5 S( x. Q# v" U" k# h, I
- print("元素不在数组中") 9 W9 q0 i. z% G! n
- else: 4 v$ V4 ~+ ?3 J4 }2 X9 [
- print("元素在数组中的索引为", result);
复制代码 执行以上代码输出结果为:
, c& l F3 U7 x$ S7 R5 a7 i4 \* B+ U! T4 h0 R- W
案例1:- def LinearSearch(list):3 w* h" T% `% u0 O/ k. v8 _" i
- num = int(input('Number:\t'))
4 `1 _' `. j t+ | - counter = 0; N! n/ b1 w# v9 t' o) e6 D
- null = 0* J( ^2 l% d# h, b l
; U/ [" C% S! Z; C1 B$ `4 W9 Q- for i in list:% \& Q# P+ H3 A; L7 S+ e( F
- if i == num:& ]0 W5 f& R+ y- F; c2 {1 S0 n
- print('Find number {} in place {}.'.format(num, counter))
* z' }7 `. g) ^* {9 j) ~ - else:
% Q* R/ F) s6 g$ M - null += 1+ ~/ b" U& [) J9 M$ p
- counter += 1
% a' [ U9 ]" [; I - if null == counter:# ~: }, ?2 `- T/ O' J
- print('Don\'t find it.')
( D" m' B p& V; z' b5 | - 6 L2 X' P) ?+ K. a, q' L0 C% `5 |
- list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]8 J7 h5 E5 l" g7 ~5 E% V. C2 p
- LinearSearch(list)
复制代码 案例2
7 H: v% A% C: a7 B) N$ y* F& z- def LinearSearch(num=50):5 k3 S2 N' r9 h* d! G# ?$ E4 {9 [
- import random9 o; M' t$ N3 ?+ b9 d8 c$ e2 G J7 C
- random.seed(888)! V M6 R1 U2 N3 B. \) t
- data = []! g3 y2 O8 ?2 A' _0 K
- for i in range(15):
& K7 H! Y$ ]& v: d - data.append(random.randint(1, 100))/ [9 j% l4 s* D7 Y# E) B/ X
- data.sort()
- Z/ M1 f- @4 p. D; @ - print(data)
1 }3 Y$ z) \. M5 T - for i in range(0,len(data)):( R3 Y* q6 @" O8 K4 w
- if data[i]==num:# A K3 l8 K# J0 C. p8 B5 w
- print(i)
0 q* o& j0 l5 v - break
3 ?+ b8 l; }* J# @ - else:! j! \7 V& ?5 H
- print('查无此数')
$ E6 f' }# @% w7 f1 b9 ~8 I# e - LinearSearch()
复制代码
0 n: z% R; o% i/ O* S1 X& M; H1 ^6 w4 A, i" Y/ }
|
|