|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。
4 _7 N9 m3 [* ]7 ?: f
~7 U! \: m$ [ M* O6 X0 O8 J' M7 N
实例- def search(arr, n, x):
- c2 s. `5 C$ |7 Q/ M0 M* {) M - - X. |# b( j3 i# r
- for i in range (0, n):
( c" [: E4 v: F% y+ U - if (arr[i] == x): : f; a) g1 ?. @% x6 t4 r# I: f
- return i; 1 K' I0 B) P& d
- return -1;
; h, e) l/ w+ u( E& j9 D: T -
7 y1 j3 K* Y8 H0 F4 | | - # 在数组 arr 中查找字符 D
9 b0 m; }4 F* u3 L - arr = [ 'A', 'B', 'C', 'D', 'E' ];
8 L4 z! R% a. m/ V - x = 'D';
' N% j1 M$ v# T- z2 | - n = len(arr); 0 |5 ^; x5 Z- o, Q+ A
- result = search(arr, n, x) ! ~& s) w3 F: q4 t1 U
- if(result == -1):
( p- }& ]1 s }$ k, Y - print("元素不在数组中") X' C6 C9 U1 q4 W5 F8 q
- else:
8 ]6 d n1 ~! j: J* L7 k- v( X - print("元素在数组中的索引为", result);
复制代码 执行以上代码输出结果为:9 x o1 s Q! ]% j$ x* h' }
5 N/ b4 l; V) w案例1:- def LinearSearch(list):# |/ C4 d& r5 U& {( ^7 M6 t
- num = int(input('Number:\t'))
0 A; L1 [. {' V; {5 M - counter = 05 [) R& [1 m1 k+ s8 {! h# Z
- null = 0
' I4 `7 b/ a c X) \+ X. l8 e& h8 B, S - ' J. N7 |( C" \/ n( U
- for i in list:7 I1 n% \% \9 E, i, I9 f
- if i == num:
! @" t9 f* S0 j - print('Find number {} in place {}.'.format(num, counter))
- i$ v+ B4 h4 F- o9 t* f - else:
& S+ d$ [' R7 ~: c' Q$ l - null += 1
) B$ }' h# d }5 @: p, F8 n - counter += 18 p% x+ z" V: H6 U G& ^% [1 H: ~
- if null == counter:
4 Z/ E3 m0 l/ ^) [8 X - print('Don\'t find it.')
/ \( X; V3 v z3 f# C
2 F( ~8 s* q( G9 H- list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]& v7 a0 D3 m* f+ _- Q p
- LinearSearch(list)
复制代码 案例2
0 P+ \( `$ p: t7 N8 |7 d& i- def LinearSearch(num=50):# G4 j: K8 c1 T2 R! w( Y; ~5 ^ C8 R
- import random( X/ ^4 x" |& d. N% Q. w
- random.seed(888)
) e* Z- [& }. e% _* [ - data = []* {' y$ T u4 u, |$ d9 m: r
- for i in range(15):
* m7 b1 X) S2 C# X: ^ - data.append(random.randint(1, 100)), @/ ~$ ]+ O+ ]
- data.sort()
2 {4 S/ w! v! K% U( @' \ - print(data)
+ K0 l4 A+ a/ ]! q R - for i in range(0,len(data)): S. M7 ?* [( Q# V( ~7 |0 C
- if data[i]==num:
7 r$ A- g6 X" @6 m6 X - print(i)- \" Y- u- q5 c
- break
' r6 c$ B4 z( H3 y9 a* V/ D, e6 ? - else:
4 D2 ]1 I3 h$ F/ ]8 e - print('查无此数')$ _4 n. p' m; M8 i: Y
- LinearSearch()
复制代码
0 k2 z% a6 o" d3 z) S# M
& l# n3 v. V" x0 S) d3 ^- Z |
|