|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。
) f& A' w2 b1 I: B) }
0 C9 a: n$ @7 T% U5 ^2 H) m3 f实例- def search(arr, n, x): , j3 U- a. c$ U, e' o8 B
-
4 V$ h2 H# B. h4 e8 y - for i in range (0, n):
/ I; M9 E% N2 l a. I - if (arr[i] == x):
X1 h1 N2 G" c# ]% [8 m: v9 ? - return i; $ K9 i9 U. R% Y( H
- return -1; # M* Q1 x/ ~/ g8 j j h0 t
- , W% V! u: @/ V1 o$ X
- # 在数组 arr 中查找字符 D9 P# P( ~; Z- ~2 q- h
- arr = [ 'A', 'B', 'C', 'D', 'E' ]; 6 z4 a; }% }, K5 Z' D) V8 C; t9 B1 V- w
- x = 'D';
$ T; Q) T7 H# Q - n = len(arr);
$ K' x) P& C9 _& G - result = search(arr, n, x)
' g H0 C7 ~* Z6 F$ g3 P8 c6 }+ C. X - if(result == -1): - n% u8 Q( ^) { h
- print("元素不在数组中") ' H4 }: _' \# f/ _; z' M9 C" l
- else:
; e3 G' i% r/ S+ L! v( B7 g - print("元素在数组中的索引为", result);
复制代码 执行以上代码输出结果为:
, A2 J' S# W, g* Y( @
% w3 Y; o0 y' e案例1:- def LinearSearch(list):6 Q7 t7 N/ {3 p0 G$ S6 n s
- num = int(input('Number:\t'))
% }$ V: o0 ?; E* k' x. }% Q5 Z* _) H - counter = 0
0 h6 }+ o( \1 t( m. r4 b# J$ k2 a% C - null = 06 d1 }' `# T! V7 v/ K% _) a3 `8 `
* ^. t; N: a6 E o- for i in list:
% P7 B) k. C# r i a g2 w - if i == num:
) i4 l5 {) X: t+ y, P' E+ T - print('Find number {} in place {}.'.format(num, counter))
' p6 E% [! a/ x5 V2 q1 n* h: j+ Y( b3 @ - else: f e; t: f/ d N6 y& y
- null += 18 Z k; I( H/ G& C: A3 z+ b
- counter += 1
) H) ]8 x! |8 ] - if null == counter:
7 ^0 `3 u3 N2 _3 {* h - print('Don\'t find it.')' b9 m9 ]) C, U
- 2 c* h: y6 `0 }* y
- list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]- q; i" I+ n* m7 x
- LinearSearch(list)
复制代码 案例2, c/ X& L+ e6 a3 f9 ]% e) T
- def LinearSearch(num=50):
; W& x- w: K, ~$ e: m8 I$ N - import random
6 F- A4 H6 o3 W4 V% h c - random.seed(888)
( i8 O- M x1 r- b/ w* X x% G - data = []
9 @, [9 ?8 t6 Q. O; l" X - for i in range(15): W* S- T, v! E g0 `$ n
- data.append(random.randint(1, 100))
8 l$ g$ w/ _1 ?1 e( Y - data.sort()0 m7 |; j9 E# } R' M" v# e; l
- print(data): X! D$ }/ E- }. z6 G& J+ z3 i
- for i in range(0,len(data)): r- P7 G D, F% C8 T6 C
- if data[i]==num:
I4 M# ~# H6 `* Z - print(i)
: `, R" K! n5 w; z C$ P - break
" v) [2 A9 @# O4 K1 B0 }7 d - else:
0 N6 b: G" c$ J H/ x - print('查无此数')
, y* N6 W* T* l: N - LinearSearch()
复制代码 % \1 W; Y" v! E4 ]) `
0 x' L9 \& }0 Y# f3 A/ x) h2 s! C* u |
|