|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。 ( }2 {( r% \. m$ I8 m" r6 {, Q
1 K( ^' [0 _4 h. G
实例- def search(arr, n, x):
2 @9 B) b/ V" f, d, {9 G, L- g -
/ O" c* w5 C, q; D - for i in range (0, n):
. u; h" I1 k0 r% a( f7 C2 ~+ { - if (arr[i] == x):
1 U0 `6 a0 c; c0 f {" J1 f - return i;
+ L8 s9 [( n5 t& L5 t) _% _ - return -1;
- W- Q, H8 w; I4 z" @ - 2 b) x# ?' O2 ?6 r
- # 在数组 arr 中查找字符 D
8 ?( Z( E# S( \4 N - arr = [ 'A', 'B', 'C', 'D', 'E' ];
, n/ c7 {) c5 p4 W% f, U - x = 'D'; 3 w0 r v1 r8 R0 p
- n = len(arr); 6 W* _5 q. w) O$ @8 @
- result = search(arr, n, x) . ^2 ~7 \& C, |; ^
- if(result == -1): ' D4 g/ S& F( m* @- s4 B/ @: K
- print("元素不在数组中") 3 l$ T5 _9 k. M2 p% W* H
- else: & S3 P! L$ W, q _
- print("元素在数组中的索引为", result);
复制代码 执行以上代码输出结果为:4 c) k; {) F4 o4 g; ^9 x
3 j+ z4 W& b) b- m& w
案例1:- def LinearSearch(list):
; t( A- [5 d Q" ?7 g9 I% u - num = int(input('Number:\t'))8 H: K' q( X- J; g$ y: @: ?
- counter = 0$ v; |& R- ?) ]: v `6 E2 E2 Z5 U
- null = 0
. d8 r: I& |& F% E$ V+ ~1 M - ; w3 {! j; G L2 `# X
- for i in list:
, O/ O. Z6 h; X, A6 U) @8 K. C2 H- I: n - if i == num:
" x) z6 r3 x) J( x! \ - print('Find number {} in place {}.'.format(num, counter))
7 T4 b) l7 P } \1 i% y$ g - else:
: N& r% k# W/ u8 g+ s9 t - null += 1* v# y- |6 f8 } S) Q6 v
- counter += 1
8 U0 Z6 |2 P4 o - if null == counter:" b$ c7 q9 s3 Q2 R, \
- print('Don\'t find it.')$ }. Y% i. O8 x: _3 b
- Z- S2 g1 m* S( \
- list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]
% @- L/ A: s5 W* d - LinearSearch(list)
复制代码 案例2* x4 Y5 M$ l9 Z9 i+ a- `# u& p& U
- def LinearSearch(num=50):
# z5 t! A3 o( e/ ?7 O, F6 K5 h, j - import random
0 }1 }1 a; V' m. d b - random.seed(888)
1 G% }- X2 [5 E+ ] - data = []
0 x9 o' n3 _: a7 s; |- H2 n - for i in range(15):, b9 @* \* p$ _. J
- data.append(random.randint(1, 100))
; }2 [, K+ z2 L2 J! Q/ T) V - data.sort()
' S7 X) B/ Q) o8 b+ v. } - print(data)4 p* j: q& {7 h. ^6 O
- for i in range(0,len(data)):7 S3 `& z' e A) v; U
- if data[i]==num:
! @- \) p- f7 t# n& y- {) F/ O - print(i)4 d+ O$ k& L$ j) h* ~' L+ L
- break8 }( r' F1 W$ `7 c; L. h
- else:
8 b) A# p0 z# `9 a o - print('查无此数')
+ E8 E1 b. ]/ W! b1 e% Z s8 B - LinearSearch()
复制代码 0 l9 E3 O# c# @" n) x0 @$ y" T# M' a
# P( q3 w. g/ Y5 N* u |
|