|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。 3 @' b4 m0 Z3 N7 T6 S$ C3 t' e% t
# F; k3 {. I& M+ k& f8 ~' b实例- def search(arr, n, x): 9 i# @7 y2 w& W6 g) o" ^0 C( n
- 5 ]$ p6 m" O5 ] v+ Z: K
- for i in range (0, n): j% \2 G# p$ r/ ~1 o
- if (arr[i] == x): ! Y* T" I, h- k8 c7 G9 X
- return i; 7 ~% S, g9 B$ }0 q. @" ]9 L
- return -1;
" b8 ]. x2 w/ N0 c6 b" x! X( \ -
) q, X! f! m4 t6 O% L$ ` - # 在数组 arr 中查找字符 D) u1 ?% \8 j0 g3 c O( V# s
- arr = [ 'A', 'B', 'C', 'D', 'E' ]; , l+ W3 u% K- o/ j V
- x = 'D';
, Q! E% j/ d$ a* o7 Z - n = len(arr); + I0 f) @5 n, l
- result = search(arr, n, x) ( g! z4 \" i5 c6 M$ q
- if(result == -1):
# F' N1 ]9 V* m% g- u1 o# d* D - print("元素不在数组中")
+ i5 ?2 I, I/ |4 I$ M - else: 3 e; d; Y7 \, Z l- G B
- print("元素在数组中的索引为", result);
复制代码 执行以上代码输出结果为:6 ~8 [- d- N$ \: E
1 j' b! G$ Z: B; W6 e4 Y
案例1:- def LinearSearch(list):; N. e( n) \, V
- num = int(input('Number:\t'))6 d+ d& H3 d1 o, p; t" ^3 |, ?
- counter = 0! w3 ^; m, I0 Q7 T1 E6 ]' h j
- null = 0
$ ] b, ^; {, n7 Y: X3 I
1 h n! {1 m! w. q! V- for i in list:
* n9 Z& H% \# L h% p - if i == num:. Y2 N5 k9 q4 g( T
- print('Find number {} in place {}.'.format(num, counter))
+ J$ H4 z2 m) l( @$ P - else: v, _+ u. Y. t! r3 F' J4 |3 q8 C$ P
- null += 1
( y1 m* g( C, F9 b4 b - counter += 1+ W7 A! r( F) l
- if null == counter:( i1 T f. j2 t/ e' f$ V- w" y
- print('Don\'t find it.')
- K; ^6 G, m0 \- A5 H! B1 T
6 w6 G2 q; K- w- list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]
& F9 e$ H9 ]- W& t: P- J$ ~: J" [7 ] - LinearSearch(list)
复制代码 案例2
/ I2 O3 K& a6 O5 F* I6 b& ]) H- def LinearSearch(num=50):" L- Y N' P+ N" f. a' r( R2 e0 R. k7 E e
- import random
" S6 o. x8 p, e; S* Z, }4 J, b e - random.seed(888)
% x+ I: [; y9 ]- N# m+ h - data = []5 Q H0 ^9 y- \" y b
- for i in range(15):+ D/ ^# x8 D& [0 ~
- data.append(random.randint(1, 100))
: K5 u3 y, j6 `3 N" G& [0 { - data.sort()
( x5 T$ V& F2 W3 C L& e: G0 z - print(data). I1 _, Q/ ~ _5 N: F ?
- for i in range(0,len(data)):# O; V5 S5 _5 L3 }, v( W0 l0 {! Y
- if data[i]==num:% a* Q; O3 h( s" x; ?
- print(i)1 m/ S8 B* h+ K6 t- R1 O2 ?
- break
|) Z3 r1 H5 X- z - else:
2 T: O4 h) C" Q" r4 ~ - print('查无此数')$ o, h, `/ t6 F6 Z& w5 K) ^7 B
- LinearSearch()
复制代码 + W$ b$ e7 e4 k w
2 P* @, x- r8 A3 v
|
|