|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。 % C9 ]; O! h& b i9 R; q; y2 Z
$ j, x M% }6 m" w' Y$ z实例- def search(arr, n, x):
4 C/ N2 U2 I1 k7 ^0 j! ?! `' c -
, m- a7 Z3 F/ w7 Q! I _ - for i in range (0, n): $ x% `" Q: f: S9 F+ E3 e1 H
- if (arr[i] == x):
2 R- W7 k. e+ w/ c- u0 s: m - return i; 1 U' V0 E6 }( `6 b0 p; a' X" @4 M
- return -1; : h5 {: @9 j3 k
- ; P5 n4 a! r7 n) N! ]: A5 Y& p! I2 p
- # 在数组 arr 中查找字符 D
! `& N% R3 o6 c& ]. Z% Q - arr = [ 'A', 'B', 'C', 'D', 'E' ]; 2 M& i- w& R5 P) K3 N
- x = 'D';
& Y( W b' h+ D7 G1 n. x3 R - n = len(arr);
( L3 d/ _0 ?, ~% V - result = search(arr, n, x)
) E- w/ x- Y- ?) t3 Z6 B - if(result == -1): ; Y" F8 [- L S; A* ~9 E+ ^
- print("元素不在数组中") " `; }2 J" ?) \1 h. |) E+ s; m
- else:
2 x( g2 v: Y( q7 e - print("元素在数组中的索引为", result);
复制代码 执行以上代码输出结果为:
" K6 E# f F; v7 q+ G) ]8 U( H! {1 z# R! }/ B5 w! b5 x
案例1:- def LinearSearch(list):
R9 l) {6 X, `& |! r4 k - num = int(input('Number:\t'))
; n* s& Q! |) H8 t" `4 o1 p! N: W - counter = 0
1 p, W" B) ^1 M ]* ], a) n - null = 0
1 \0 J2 J+ O+ i1 z4 A6 ~ - 2 p5 R+ Q& M( l
- for i in list:
6 V/ t! H! ]3 t0 |" z& h - if i == num:$ P% H2 k& h, u3 u$ [5 q
- print('Find number {} in place {}.'.format(num, counter))
6 r! |: q" a( d - else:- E# c0 E$ B% b4 K/ P
- null += 1
1 i2 {6 Q( k- J5 ^ - counter += 14 E) o0 {, T& V# ]# c
- if null == counter:
. ^9 \" ]! }0 S& W# J, R% C - print('Don\'t find it.')
2 J( ~3 T3 b% I5 E J
" `, n% W( c3 g# _' O$ R- list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0] P/ f1 o+ K5 k
- LinearSearch(list)
复制代码 案例2' I0 r& g% y& s9 |9 @" t9 G, V: v9 J: ?6 D
- def LinearSearch(num=50):
6 y# M& W* p8 k% f- z - import random
6 _$ p$ N: B. Y6 O2 Y - random.seed(888)+ C* ^/ t; |( y5 M( {1 p S2 Y: z
- data = []
8 b* r# W5 m$ k/ E: H! C - for i in range(15):
; s5 I# O4 d9 V6 u& e4 ~ - data.append(random.randint(1, 100))
, J1 F5 W3 K) E7 Q. V5 N# i - data.sort()
5 l4 f* Q. a: i6 J8 J% t - print(data)6 Q4 d0 n0 {. x2 n' u9 A) b5 h8 o3 T
- for i in range(0,len(data)):. p2 w! w. P5 J$ N z* N% l
- if data[i]==num:
5 K+ C$ ~1 _7 @ - print(i)
4 ~) L/ ]. d( m1 S+ e - break
0 x# a* j: E9 C. e0 K, r - else:
) }0 z% W& I* I - print('查无此数')0 b8 H1 B) `9 r
- LinearSearch()
复制代码 $ D' g9 N7 y' k( v# m% q! o
& W! ~; M9 L' q C( f* {: S1 { |
|