|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。 4 Y3 u0 U, W- P+ S
# S' ?0 a' ?3 f7 w2 T; M/ c5 F9 `! y实例- def search(arr, n, x):
1 G9 M$ X P8 `8 E( W -
" W' a. A! J7 [$ q: \: C! ~+ s5 \ - for i in range (0, n): ; L5 F- L. K# o7 ?* Q9 i0 O
- if (arr[i] == x): " w( t' }6 H! `: X
- return i;
# m, l1 f4 y* Q; z, b( B - return -1; 9 k6 [$ i" g# x$ D* N
- ' i4 Q" Q" s& j8 {
- # 在数组 arr 中查找字符 D
- T" A/ ^7 v, k4 I9 Z - arr = [ 'A', 'B', 'C', 'D', 'E' ]; , j+ O3 i7 c. Q* z% J' r! e! t9 p
- x = 'D'; % @! l7 b G" X8 }' W
- n = len(arr); # U2 x5 z+ D1 X4 S2 f
- result = search(arr, n, x)
" o6 c. u1 P: |2 Z/ R - if(result == -1): % `* w, `& l- _5 f) k
- print("元素不在数组中") 3 @$ L' L+ W# H' e
- else:
) V* ^# I- _% R. B7 k0 ]( r, \ - print("元素在数组中的索引为", result);
复制代码 执行以上代码输出结果为:7 `+ K; w p% P4 T$ w9 L0 \4 w& [
9 r! Q5 `# ]: U4 F; g% g
案例1:- def LinearSearch(list): ^/ W# @! z4 q% F
- num = int(input('Number:\t'))8 D, j% |+ @! ?' ]. V& e+ h
- counter = 0
0 Z8 U h! ]- M6 I* Z6 n - null = 0
" h$ D8 M+ Z& O& b& G
3 }1 D5 x* H; _( w7 Y% V- for i in list:2 \' N1 }4 a# K: t) M; ~8 _6 P
- if i == num:
4 H& o: _9 f( [; A - print('Find number {} in place {}.'.format(num, counter))
8 ^; w& B6 X- N) i - else:6 Y+ Q* P# E0 O! p) J" h
- null += 1
; _* N+ S/ \# ~% z" R q - counter += 19 Z5 X# R0 k/ ]: n# y/ J& l
- if null == counter:) X b+ b N' X4 L$ U7 s
- print('Don\'t find it.'); X7 [1 C$ A# D9 i. G4 @
- 1 x9 D7 |9 {0 |2 T; X7 c' K
- list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]
4 c3 s2 U( B: f# Q+ _ - LinearSearch(list)
复制代码 案例21 Z5 x1 T @& S' c4 k
- def LinearSearch(num=50):, R4 x) }. |0 r6 ~- G
- import random
0 B0 `4 B! ~7 O: y - random.seed(888)
2 Q9 I j% J( n! U: }: G4 x - data = []
2 p$ S6 H8 E0 K5 B+ K9 ~* G; u - for i in range(15):
3 m, |. E# n% I& L - data.append(random.randint(1, 100))( e: p4 F" l* R/ @
- data.sort()
7 C. Y% C0 E* `* R% ]: d7 a - print(data): r e5 c0 \ E5 X0 Y
- for i in range(0,len(data)):) g+ |; X' Q8 i% |
- if data[i]==num:
0 } w! {4 g, T6 P$ p7 Q' i - print(i): s) x+ H$ R# i5 _$ o4 e2 s
- break
F9 a' l- \$ O5 O) ?( _+ m - else:
3 T+ R: z4 }; e) m: s, N: l) V5 o - print('查无此数')
3 ]$ C$ C# n% g) w1 R - LinearSearch()
复制代码 : @* U$ {- J% P0 x+ ?
0 Y# R$ p5 b- x- a# `+ g3 a7 ^
|
|