|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。 ( W, }: d6 `0 N3 ?1 L4 a# ~
( g4 W0 J& M' j/ \% ]
实例- def search(arr, n, x):
# E9 h( d# Z9 z" w- `' J) e - 1 s. \" V, O. C! `7 n K1 f! l% Y
- for i in range (0, n): $ F8 n$ m0 I3 S" d6 J
- if (arr[i] == x):
7 f$ L- e/ c" w8 u; M - return i; ) ]& z3 b& V! D+ c2 T5 T4 r
- return -1; ) S$ I! B2 p& W- n
- + ^- h: M: x* e* t1 Y* p' g8 j
- # 在数组 arr 中查找字符 D
: `4 N! I( x( \$ Q( L3 R - arr = [ 'A', 'B', 'C', 'D', 'E' ];
0 S2 M- O2 h3 I3 Y( p( u x - x = 'D';
0 V& R$ z, K5 A. j/ _; O/ ~ - n = len(arr);
) m) l+ f) W* L - result = search(arr, n, x)
& R! | j; B6 C1 M) ] - if(result == -1):
6 Z" \7 N }) a; _2 m k* b - print("元素不在数组中")
2 [! J) O. |* {) C' ] - else:
7 q4 e. ^9 u; {* B/ y - print("元素在数组中的索引为", result);
复制代码 执行以上代码输出结果为:
, n3 p4 Q2 A! ~9 H- y% Q0 _. \5 }. l9 L- ~- z8 C
案例1:- def LinearSearch(list):
7 a) ~* O7 A) c; v$ H - num = int(input('Number:\t'))
8 Y# h! Q4 r$ F- n. j - counter = 03 W4 M" |) \1 _4 D. A; w; p
- null = 0+ q% T* G$ P, ^1 o% Z8 n
3 q5 Y1 O! z i! O- for i in list:
" L/ j" j* \) A a8 T& {! Z - if i == num: J6 y3 X S: b3 ^: \5 j0 h
- print('Find number {} in place {}.'.format(num, counter))3 E* c0 I' T6 \6 K$ |& w
- else:; o% q1 |7 C% o6 v. x& G7 o: S$ [
- null += 1
' e3 E, s% R, A4 ~& Q' D. i+ T - counter += 14 C) G$ E% {; r" b# A: Z6 o# ]
- if null == counter:% B$ w( k1 e! w
- print('Don\'t find it.'). }( \ M+ j% r% P
: S$ R6 z4 s; w% T/ L* R0 K4 v- list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]
2 Q" y% y6 @; o0 n# u$ `. G - LinearSearch(list)
复制代码 案例2
) J( B/ Q* u" ~$ w* @- q- j1 o- def LinearSearch(num=50):* I h' A0 n. [: X
- import random
5 M( ?% A1 r! W4 V3 {+ i0 P - random.seed(888)! [0 L( O% C/ j: C' \/ D( w5 |/ X; d# Y- ~
- data = []
) D- J8 M$ U( \3 q1 d* M - for i in range(15):5 e" O8 j7 P/ G) C, ~9 D
- data.append(random.randint(1, 100))
7 W+ S- b% E; d, Y/ F - data.sort()# c$ e. j& ~4 c3 {" G1 ?
- print(data)8 U: a0 Q7 `! ]% _" R; \2 h' }: d
- for i in range(0,len(data)):
4 I! F' @ f1 s3 T- {6 x - if data[i]==num:8 w$ |5 {4 K8 f! x6 F
- print(i)
' m4 a( K7 N8 e. a! o - break
; G$ N0 ]& T: t+ W( w/ Y - else:& r" M! |0 |& }; w* o0 q$ R0 G1 p
- print('查无此数')
& D2 Y, `/ p4 D3 `4 C - LinearSearch()
复制代码 ' C) |" ~! R: l$ m
. Q$ E( U# U ~9 X- s% W6 H |
|