|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。 2 P2 `2 T/ q e, c$ S
/ O( x9 }3 j9 w8 F: b. U$ y
实例- def search(arr, n, x): 9 L5 d! {$ z1 h( ]4 f. k: h" I
- 3 @- b0 x( u; | ~/ I
- for i in range (0, n):
$ d) X: h1 M I5 \- r, ` - if (arr[i] == x):
& i% I( D) a7 B8 ~6 V9 r7 n - return i;
3 W6 Y$ d4 P) E- V0 @ - return -1; + a" p: F5 n; m2 Z
- + M- _( p% N2 R/ B" L u) H
- # 在数组 arr 中查找字符 D
! V9 l. e/ k+ x1 p - arr = [ 'A', 'B', 'C', 'D', 'E' ]; 6 A& L* R8 e0 g9 E, L, n8 _* X
- x = 'D'; / z+ h7 q/ ?) c7 u5 E R
- n = len(arr);
, y' g, S j7 q8 w0 ?/ u6 b5 L, [6 s - result = search(arr, n, x) " B* n6 x6 ~" |7 x& B. v; L2 t
- if(result == -1):
5 d) C( e; N ^. ? - print("元素不在数组中") m$ a- I! I/ F4 P5 w% q
- else:
" M% Q$ S! K% r8 s - print("元素在数组中的索引为", result);
复制代码 执行以上代码输出结果为:
8 i; h+ e* E/ Y3 k$ L; g1 M7 h; m/ r& W
案例1:- def LinearSearch(list):; B8 `. Q8 T2 D, V, p# _
- num = int(input('Number:\t')): {2 s8 h Y7 c& z3 o. Q
- counter = 0: R/ p( h2 D6 L# o# j* r, j, v
- null = 0: x0 ^0 O1 o' d( V: Q# t
- 5 `& }* g; w N
- for i in list:5 w1 X- G2 v( h% j
- if i == num:! R) h; w& [5 R4 I8 @% H# V
- print('Find number {} in place {}.'.format(num, counter))( L9 ^' a. C: Y8 s" x' y8 e/ t
- else:
, @5 [- e9 Z# W7 n - null += 1; ?% D( N* B: x+ D4 K. `
- counter += 1
3 W% K) r2 R" B - if null == counter:8 Q( C- q% z6 T8 h( E2 E8 h
- print('Don\'t find it.')
" t$ x, W2 S$ X( T9 k. k# [5 t
, @ \7 _6 x( T! O6 v( R- list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]0 g! P9 \. X5 y
- LinearSearch(list)
复制代码 案例26 N7 J1 ?1 j. x4 ~5 X
- def LinearSearch(num=50):8 a4 s4 g# G1 O. O- P/ T
- import random# y% \& U! | r8 \5 w4 j
- random.seed(888)
0 ~2 x* [/ r: Q e6 i - data = []. ^8 `' d/ l) R/ X2 j+ J8 X/ C
- for i in range(15):
9 m8 K8 s# R6 L( m - data.append(random.randint(1, 100))
3 B( N' V: v" b0 n0 }8 L - data.sort(); K+ `- Z; }% W. Y
- print(data)4 O* J% O$ G+ E! `# [5 \
- for i in range(0,len(data)):
* @' v6 D9 \" ^/ C - if data[i]==num:4 N# f' s8 C: l/ T' ?, E n3 f+ `
- print(i), C+ o8 t9 ?% ~% _
- break
$ Q$ }: m; k+ v$ s# j - else:
9 k; b: v) D5 T5 n - print('查无此数')
1 O' \/ X+ J7 U+ e - LinearSearch()
复制代码
* ~7 ~" ~. s* p* P! |6 c c+ |
0 q8 k2 R9 _6 ]5 ~' ~ |
|