|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。
7 }9 c+ ?4 k* C: ]! L
* [ ^$ l$ g& M& Y$ Z实例- def search(arr, n, x): , | H; B1 t5 T9 r7 i3 p
- 9 I3 `3 M ?6 O# ?
- for i in range (0, n):
* g6 m6 b/ L) H/ Z: W+ f - if (arr[i] == x):
$ p6 ?0 [4 X: }* O3 M6 o9 E - return i;
8 [$ S3 R1 J3 x - return -1; 6 T' A" d/ G: t& g5 z/ I
-
* Q M8 U1 o, u/ Z7 Z% j; b& { - # 在数组 arr 中查找字符 D
- t* ]- ~2 C l6 I) E - arr = [ 'A', 'B', 'C', 'D', 'E' ]; - M: r# |6 ]5 g8 u6 u" p
- x = 'D'; 6 A. R# {2 @' N
- n = len(arr);
- L1 m/ x o2 D4 n - result = search(arr, n, x)
* J8 Q6 U: ^* W4 [. j - if(result == -1): & v' a" u1 }* v
- print("元素不在数组中")
; ~1 L. G! H8 G* w - else:
2 |8 e8 P$ o5 L6 L7 v3 \ - print("元素在数组中的索引为", result);
复制代码 执行以上代码输出结果为:
' v1 ] J5 J: z; ?
0 [6 o$ W& a T案例1:- def LinearSearch(list):6 J. y4 c1 d1 N1 G' j
- num = int(input('Number:\t'))% x( T, ?# n2 l
- counter = 0
/ [. T k, d1 D4 U& o7 ~ - null = 0
& {8 L3 S6 K- B1 G - / d7 `8 n) Q2 r$ q. m1 U
- for i in list:
8 Q& H) u% q2 O' }5 ?6 j: L - if i == num:$ L/ w$ P- Q8 E& C4 K, s
- print('Find number {} in place {}.'.format(num, counter)). E$ e5 f3 P# {" E% g
- else:$ O* T( N1 Y! m0 ?1 C% L1 K
- null += 1# g0 G3 _% y' K2 W' }1 b; m7 Z; d
- counter += 1
7 X5 F& t! |5 F6 U; K& u% M( Y9 K - if null == counter:2 ~. o( T. ? f6 J' K
- print('Don\'t find it.')
: B; L5 A& ?+ }. H- K# D - & ]) [2 I+ q6 Y, H& ?
- list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]
% ^7 z3 u; ^+ N( z3 F - LinearSearch(list)
复制代码 案例2
- D+ \. n& x# o' }9 i- def LinearSearch(num=50):' W/ n( N" R/ A7 t5 V
- import random
6 A9 S# e# N' i8 ` - random.seed(888)
9 Q6 Y2 Z7 f! S; @8 m' n# g2 [ - data = []
6 T* h) T6 _' s; W; M/ G f - for i in range(15): {( h3 T$ _( z$ T' F+ e+ i9 r
- data.append(random.randint(1, 100))5 R- ]. g& H9 \* f% q
- data.sort()) O$ ?) {6 N: e
- print(data)+ \, h( T6 M# f( n
- for i in range(0,len(data)):# @2 G+ X' D# H! K
- if data[i]==num:) ^2 y) C% P `4 s5 c. E
- print(i)
, X& ~: b: w Y- q2 o Q - break5 q6 x2 }' C/ z3 a
- else:2 r% [- E3 u) w
- print('查无此数')
$ b% B R& i9 m- }2 H4 } - LinearSearch()
复制代码 " H: Q. n: g+ T T6 f3 @
0 _# M! B) ~% L5 R G
|
|