|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。 " d" ]8 V& k4 @- C- M. B
% `3 @4 u" }1 V% U" v实例- def search(arr, n, x): / P& w, T1 R- f' C
- ' n4 D5 O# e o X9 `/ b
- for i in range (0, n):
/ Q: ^1 B, ?$ k- D1 W$ ], _ - if (arr[i] == x):
% W& q0 ] q- L! T( t" n - return i; $ B8 Y' o; l& h" d% q
- return -1;
1 p A6 Q6 e2 _5 F$ X" \. T -
5 B& k6 H9 u4 A) |. [: } - # 在数组 arr 中查找字符 D
, B8 n; L2 p4 D7 b" j. T - arr = [ 'A', 'B', 'C', 'D', 'E' ]; ! K+ L( U; z1 Z9 M _7 c
- x = 'D'; . ~- N: T3 `0 g) _0 P
- n = len(arr);
) R+ O7 |/ U' G+ O n/ L* f$ R) l! U - result = search(arr, n, x) % c: ?1 V' f# Y: Z; q p: y/ R: G& J: g
- if(result == -1): : j# Y8 f% D$ f
- print("元素不在数组中")
( b; Y* |( a; U, ^ - else:
6 r" ]: ^8 u' j. A3 f - print("元素在数组中的索引为", result);
复制代码 执行以上代码输出结果为:
8 B8 S0 F$ @( f( _/ Y( H. [2 r( T+ D" s
案例1:- def LinearSearch(list):
5 E8 T" F5 N; T* v' o - num = int(input('Number:\t'))
; _; E: \, N0 c# A7 f% k% _8 j) e - counter = 0
/ Z! `. P' |& N+ Z' Q - null = 0
* q9 L9 ?9 R2 D; u0 i0 @
, k$ t3 L5 D; m% A$ @9 X- for i in list:( j; _$ K. u$ b
- if i == num:5 I% s! T8 o" ~8 L, O/ x" u
- print('Find number {} in place {}.'.format(num, counter)): W+ V5 K, |2 \( Q/ B
- else:/ X( s. Q# w/ X/ s. D) d
- null += 1
$ d) ~& s/ M* ^: ~/ m& A - counter += 1
7 T8 ~" v4 [: f% W7 ~9 m - if null == counter:
( Z! `. ^: j0 d1 h; O5 Q - print('Don\'t find it.')
* p5 m+ W. ], J8 h) v( N) o# U! u - * N$ \! n- m* L: V0 ]0 |& D' o
- list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]
3 p( P& R0 z+ f- k( Q - LinearSearch(list)
复制代码 案例2( q9 e6 D3 L. S6 ?: j2 J
- def LinearSearch(num=50):
5 A5 [) e0 J. m8 `7 G" h3 B, E! Q - import random% f% g. F# u5 J3 A$ y$ l
- random.seed(888)
: M- L4 E7 g1 B% {. n - data = []
7 ] t- H2 |3 }. |' \+ W+ q( k - for i in range(15):' |4 {3 J" k+ U( @+ Y
- data.append(random.randint(1, 100))0 Y( H- |+ x4 [
- data.sort()
3 ?/ C) N! H- c: s3 i7 ]# A# R - print(data)
6 D+ Z# L+ b$ v/ w! Z* ^ - for i in range(0,len(data)):- M! r! g1 q$ l+ D: N! O
- if data[i]==num:) y9 i; ~% F5 X4 @: H5 j3 y
- print(i)& Q3 F& b) [- i- r: }$ Y
- break/ m0 g1 t; {; i
- else:
# `+ `) S- }2 \4 A - print('查无此数')( h) z. e/ V$ v3 x9 {2 l
- LinearSearch()
复制代码
2 j/ [. C+ N7 w" n1 i' c( Z! T2 ^+ [( a
|
|