|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。 " x4 C9 w$ T3 c0 V& s% z
! E+ e. O' V/ a& O( a7 o: @
实例- def search(arr, n, x): + l( ~ ~! R7 B
- * d& E3 B4 q) ~% g6 a# B4 n
- for i in range (0, n): , x( E0 |% i( L) `
- if (arr[i] == x):
& T: H6 f% X, A - return i;
, @. S w, X5 @ - return -1;
A/ [8 @: Z$ m$ Q; D - 1 Z$ k5 J* a! I5 y: _7 X- _7 y" M+ t
- # 在数组 arr 中查找字符 D
* L) m: ]. j: \1 R9 p+ B% ~ - arr = [ 'A', 'B', 'C', 'D', 'E' ];
' }3 \* x' U/ F+ a - x = 'D'; ' P H8 m# I z$ p6 y. b2 i4 E; G) E
- n = len(arr);
. r# e/ U: |; ? - result = search(arr, n, x)
9 H( h$ }. P# l; y! P8 C/ l* l0 P - if(result == -1): ' ?1 J3 c/ k5 X7 @ K% ]1 H) _ Q
- print("元素不在数组中") & F4 o# ~* v4 k* X2 n" m/ B& J5 {7 h
- else: / Y( p7 m4 {: O2 x' k* ~
- print("元素在数组中的索引为", result);
复制代码 执行以上代码输出结果为:
5 n0 u+ z: U& x! c( a4 c# z/ U- _" K+ g
案例1:- def LinearSearch(list):
! m) A- o9 `; T M - num = int(input('Number:\t'))
$ y. k5 N3 T4 F- ? - counter = 0
, n: O( ?, S0 [# Q) x* `- y - null = 0
4 Q9 X ~2 v5 t( ?8 }4 { - * Q; U7 ?! u+ T4 `6 Q
- for i in list:
/ ~; I9 A, R* ~$ f/ E" Y$ {8 l* _ - if i == num:
! a. w( c$ o5 C# _& c9 H) ^6 g4 W - print('Find number {} in place {}.'.format(num, counter))
) a5 U- I7 n( k( W - else:
0 J1 m3 _, l* ?" {# y+ S" J - null += 1
6 F. \5 M1 \$ o# B5 O - counter += 1
1 y: Y6 }) M+ \5 w, R9 o* ^: ~+ m% p - if null == counter:+ N5 G* n" _: V7 ]4 h! `
- print('Don\'t find it.')
3 R3 M% B% ^! R2 f5 X - . K+ m1 e6 g' Q' m' B: o) ^# ]" @) u
- list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]1 }/ |" W7 R2 y. l& Y. [" f
- LinearSearch(list)
复制代码 案例2
3 [( G, K1 b! r8 H2 P- def LinearSearch(num=50):' I$ q, _7 b3 n8 _3 I) {$ d) L
- import random
. D7 V" e4 ]6 n+ \/ i" E/ b. j- Z - random.seed(888)
( n/ ]5 z) F6 `! v9 A% T - data = []; K% k6 a1 G n: A" m0 W
- for i in range(15):
# c) j% p/ v1 H: \: e - data.append(random.randint(1, 100))
6 b5 B/ A8 |0 i/ h$ R3 l - data.sort()) w( v$ {; B' M0 x: A0 s. D
- print(data)6 g8 r6 w, P* f- {, D9 `) U4 o
- for i in range(0,len(data)):2 z4 [" b* B1 T% Q! a
- if data[i]==num:, I. b# V, n" ?- {: A/ E
- print(i)+ G8 ], }0 q4 a( o8 z9 C
- break3 J9 K1 W" R, q# z( P" o
- else:. d$ X( b- T' C. ]3 ^# P
- print('查无此数'), H/ \8 p4 D$ ]$ i/ Y5 u
- LinearSearch()
复制代码
3 v" J' w1 g* b- |4 g, u# Z7 V
. A/ D/ j+ [& C% f |
|