|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。
6 q V1 Z9 V* n W! k
+ |, I6 j0 E. v. b- F; g实例- def search(arr, n, x):
8 _7 M* L( m4 z% C( { - + F4 Y; I* x8 n3 ~' d) Z* _' ?) g0 W: G( M
- for i in range (0, n): ) s1 p* R. E5 O8 I8 ^
- if (arr[i] == x): * f9 y ]) D" E9 P7 u8 G
- return i; 2 l" g4 `$ m1 u; P/ X9 }7 ?) F d
- return -1; 7 z f: w E9 X! b
- ! Q9 }" Q- t% [2 R
- # 在数组 arr 中查找字符 D
) |4 \" f- M+ b7 P - arr = [ 'A', 'B', 'C', 'D', 'E' ];
; G. ~- _6 _" ^7 J" ] - x = 'D'; 1 i9 R1 W/ t* r% `
- n = len(arr); 9 O% }$ ]" h: l& ?3 Q7 Y
- result = search(arr, n, x)
/ d# m+ g/ S5 i5 g( G/ b - if(result == -1): % |# F. J' i; n# P0 c8 ^; s# D
- print("元素不在数组中") 8 g' H# Z0 |6 P$ A- U" c# e( n g
- else: 2 m/ e7 v) H7 w# }' }
- print("元素在数组中的索引为", result);
复制代码 执行以上代码输出结果为:8 ]! Y! e2 R2 s! E P5 ^0 p
, [/ _, O& T0 ]1 @& q案例1:- def LinearSearch(list):6 p( j) n6 {: i% J0 X" H
- num = int(input('Number:\t'))& |5 |- c2 X/ A1 U2 Y
- counter = 0. x5 v. b4 e; Z2 g8 ^3 q3 N% u e
- null = 0+ e& r1 f: j# {' |3 Z7 Z
0 ]$ E+ R7 w, w% w) Q v6 S: u- for i in list:! V9 x J, V) a' Y
- if i == num:
$ x- v3 y) d/ Y2 B1 R- y - print('Find number {} in place {}.'.format(num, counter))
; G/ I6 h4 R: q# d3 q - else:
# j6 z& u8 @- u6 X# c7 v2 W - null += 1% O7 z0 K1 P' y- c4 \- q
- counter += 1
R6 g; `( l2 s, S) ? - if null == counter:+ d8 \$ ~4 m6 G" m: ~9 F
- print('Don\'t find it.')
1 s! J( j9 b! y, Y& Q
" _# j' J( [# `) d" x- list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]
9 n3 e: u* @+ C6 @. ? - LinearSearch(list)
复制代码 案例2 z% x( ?) S! j
- def LinearSearch(num=50):6 {! s u' x* s4 h
- import random" z7 @9 u- D5 `# `8 Z2 x# F
- random.seed(888)
4 h: W4 A" ]3 ^& M( J% G+ {* x: K+ T - data = []
& G( K" n7 g; u; ~ - for i in range(15):
( k8 Z8 P$ U. b$ E - data.append(random.randint(1, 100))8 F5 G3 z$ e% l% F
- data.sort()
7 A# J+ n! K3 V& \ - print(data): G# S$ x$ T' n E& p9 I
- for i in range(0,len(data)):! T5 ]; r0 b8 R
- if data[i]==num:, ^2 z; J' U: t
- print(i)6 @. ?$ E8 p/ V& V
- break
* m6 \* y: f Z/ e - else:* R s3 f- B9 O5 x
- print('查无此数'); F( s4 m% [% H, z( @' t
- LinearSearch()
复制代码
( G5 o1 m3 f) ]- V3 s$ C6 e: N% C
. s! Q. O. u$ T [5 t |
|