|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。 " M4 D( ~1 ~/ z* r7 }
4 L* U9 W+ Z6 j) D' t
实例- def search(arr, n, x): 9 N+ Z5 C5 {' n% @& W; n
- 2 T: D3 l( i$ z
- for i in range (0, n): ( Z0 b n8 S+ h) _+ D+ }, j$ F* K
- if (arr[i] == x): $ C: v" {# t ~, A- d
- return i; 9 w* y; a2 d) u
- return -1; - J# h/ j' [6 D# P3 S( |3 r
- " m9 `8 d6 I. p( Z$ W/ u# f
- # 在数组 arr 中查找字符 D4 N2 ^$ Y4 u! c) k$ x9 y4 x
- arr = [ 'A', 'B', 'C', 'D', 'E' ];
5 @0 R( ~% }5 U - x = 'D';
* g& k5 k0 H* d+ W5 g+ F* r - n = len(arr);
; o3 k& m$ h4 j# e8 W - result = search(arr, n, x)
5 y0 m/ @6 L0 v b( k# f - if(result == -1):
+ L7 j% m, }$ ~- Q$ }' Y" L - print("元素不在数组中") 0 ]& T" p" c, R m2 ^$ Y* I
- else:
+ S$ b1 F0 X" ^ - print("元素在数组中的索引为", result);
复制代码 执行以上代码输出结果为:8 J: X$ e# @0 X0 \ t" }: X
) {3 O9 d0 `. T7 c s. r) k" {7 K
案例1:- def LinearSearch(list):
9 ^7 p( }/ ?: M% l: D4 j+ D - num = int(input('Number:\t'))/ l& I' T' r7 G7 d$ ~
- counter = 0
' Z4 w4 E" u g% n9 \; Q - null = 0
: I$ z/ i r! ]
+ y8 r1 H, ~& D- for i in list:3 A& V- O/ ]+ `# w
- if i == num:2 i9 z' b% r0 f' {* s _
- print('Find number {} in place {}.'.format(num, counter))$ E6 \+ p8 f4 A+ c; |
- else:
' J# o! e+ Z. ]5 z# T3 @& R - null += 1% H0 Z' @2 M9 N I
- counter += 1
! z/ W: ]. Y) Q4 L) Q6 Q - if null == counter:
3 x2 U& z' m& l - print('Don\'t find it.')
5 l" ^) {" A: ?2 B' A - - T( l. b4 Q7 w
- list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]
) n+ b2 f: d5 T% [1 s. Q, i f - LinearSearch(list)
复制代码 案例2
) k' V) p! R( _! J8 P' O- [- def LinearSearch(num=50):6 J& j$ |& l1 A2 M
- import random
/ j. T+ U" l1 D- O# M - random.seed(888)
8 O: H' b0 m$ K! L1 C. l$ X - data = []
d; ]3 T- r! P9 J - for i in range(15):0 g- D* e2 y2 \5 q! O
- data.append(random.randint(1, 100))8 S5 v i7 |. Z+ e
- data.sort()+ i; @- S* F. e: `8 n, V6 p9 q6 ^
- print(data)
) X: n5 p, Q4 d! l* J0 d: A9 D - for i in range(0,len(data)):
2 F$ U7 v2 _* M9 F' L - if data[i]==num:+ |: X6 s- U3 N4 F2 ~; s
- print(i)- Q' ?8 U; m$ m
- break, @5 w& Y! `: Q, W5 K/ J
- else:( }" M1 J+ R& H' f
- print('查无此数')0 g- m. a+ [( P+ N! k% U
- LinearSearch()
复制代码 $ f3 ]2 {4 i. i0 S! g
' Y" p' ~9 R8 ~ |
|