|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。
, |) \2 `! x7 S# X- c
6 T, \# i5 ^0 ?实例- def search(arr, n, x): ' I' ]* g- b9 `& U2 G3 ~( b7 m
-
* u/ B$ q" N I! h* e/ W - for i in range (0, n): ) ]( M2 j/ v7 E
- if (arr[i] == x): 6 B3 J9 `5 M4 O( a5 h. F6 @, s
- return i; # \% R/ x/ w# \; d @5 T! t8 R* T, R
- return -1;
7 J% d, W! K0 }1 M - * b' f3 K1 E' _/ ^4 d; B% u' \
- # 在数组 arr 中查找字符 D
7 J7 F' c8 `! f - arr = [ 'A', 'B', 'C', 'D', 'E' ]; ; `- ?, V& K6 L6 p; a/ Z$ `# V5 X
- x = 'D';
1 f: w3 a0 l+ k. B' a - n = len(arr);
& d4 v! e8 v" k; ~& d: x2 {, I - result = search(arr, n, x)
* e2 B; |& q6 C6 Y0 D1 j1 c! N - if(result == -1): 8 Y$ ~6 s4 Z9 ^5 N( ^8 y4 p) B
- print("元素不在数组中")
9 x+ [& Q& w% l - else:
+ _& o; s! c* B! s' V2 Z% O6 q - print("元素在数组中的索引为", result);
复制代码 执行以上代码输出结果为:% t9 |! z3 ~( `/ g5 k7 ^
. {. K [3 x P2 H
案例1:- def LinearSearch(list):
/ V& N# R5 F7 \0 ~ b - num = int(input('Number:\t'))
" S1 a3 L/ V1 o) c, j - counter = 05 K+ ?& g, y+ f
- null = 0
/ ]- Y U0 G) [
' _# c3 ^9 j m$ U9 a- for i in list:
0 L' l3 M. @" e0 b3 i) ]6 _0 e - if i == num:
5 D& C& k8 n# g$ v( u - print('Find number {} in place {}.'.format(num, counter))- z! H6 ?9 T& V
- else:
% W7 M7 c, b9 C! s2 R - null += 1
+ k- q9 M `# O- S# i - counter += 19 p, m7 a& p ]
- if null == counter:( H5 a" x& o' R/ A1 z9 C# ?9 z3 T; [' z
- print('Don\'t find it.')
9 M. c( M* ^( D& _, A
8 d7 \) x6 k7 z9 }* i" s: z- list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]
. R' u4 D+ m* } - LinearSearch(list)
复制代码 案例2
T! J' R5 e7 u. J* F- def LinearSearch(num=50):
5 H1 K5 K) }. {( e/ m0 A+ p3 x& ] - import random
. J& g; T% ?' M/ ?. W# S# K - random.seed(888)
z6 X9 e& q% m; @' s, G) Z9 p - data = [], R9 E/ q# b* s: Y5 U% F [
- for i in range(15):: T3 E2 S: P% Y; e
- data.append(random.randint(1, 100)), p4 t+ r% ~7 @6 B) e+ n
- data.sort()/ B# ^, v f. ?
- print(data)
' H* b z5 e8 X! y) B - for i in range(0,len(data)):
& L9 I9 P, _! J8 j9 \4 O - if data[i]==num:$ n1 ~& X' W1 R" ^! t% \( X2 w
- print(i)
! v3 j2 M' I1 f8 T L" q, S2 j - break
4 _- B- \& r2 L! J$ n0 \ - else:
6 n0 ^# K0 _. w# f$ m: R - print('查无此数')
! J( }, \8 |1 S/ p - LinearSearch()
复制代码 9 T, m4 \$ [$ n* ?
5 v8 C8 }% \- H
|
|