|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。 3 M" G2 S6 m0 l
5 G' p7 f6 p+ N9 A/ T; S6 y& w实例- def search(arr, n, x):
* x6 W, V B$ c- t& l) I - . f6 j% u j% l9 f
- for i in range (0, n): % V% i% T- u2 _& D/ V. o: [
- if (arr[i] == x): ; M7 C, t6 z3 b5 w# X
- return i; * u3 a7 O+ A* m p8 Q2 U0 N
- return -1; 0 t5 h1 G+ ?* c+ a
- 5 H) O/ L1 X& z, x# f0 `! f) `, _
- # 在数组 arr 中查找字符 D
# ^6 T1 o6 n% B- U9 j: D3 R - arr = [ 'A', 'B', 'C', 'D', 'E' ];
5 j7 y& P/ |4 g3 F" m7 H - x = 'D';
9 [; X" M; {$ ?; r( x% _ - n = len(arr);
% n6 v5 }# w" w. Z, @ - result = search(arr, n, x)
: S$ H' M8 y& S5 M# k% h! A3 H - if(result == -1):
7 q- i' }. a3 b7 x0 P1 `1 G! E/ u4 x - print("元素不在数组中") * \0 r* g5 O9 Q. E& T' \. M
- else:
9 l6 z7 I* b I e3 u1 d- u - print("元素在数组中的索引为", result);
复制代码 执行以上代码输出结果为:) z3 u7 @ }) `7 y/ l: A7 U2 u/ }
, e; w) j0 K# Z6 n) I; U$ R3 v
案例1:- def LinearSearch(list):* C; w: P2 w( H M
- num = int(input('Number:\t'))) z; y% ?; M" O0 u. ~
- counter = 0' |5 B. A, m. y; _7 |
- null = 0% G; X& c( _9 I0 @/ J9 y
- 7 [2 \9 z- d/ N; E7 u- X
- for i in list:* z) r" e+ ]( P. [: A1 w: j
- if i == num:# K. g6 f; m0 g& Q+ V1 m+ F6 Q
- print('Find number {} in place {}.'.format(num, counter)); |4 B* b8 r( {: B- A% E
- else:0 g; [; c7 F! i# T/ [+ s9 h" t
- null += 1
8 h# }( h1 c) c - counter += 1
8 Y2 ] ?: J, H" p - if null == counter:& m4 Q' o' b2 F
- print('Don\'t find it.')2 |, C5 G& P, x- t
% o# M2 s. w% T4 J- list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]% s/ ~+ i7 ]! r" R4 j" z
- LinearSearch(list)
复制代码 案例2
* X( W2 F* V, \& e W! _$ j- def LinearSearch(num=50):
4 s. L4 ?7 l- q* G8 d; r$ ~0 C0 ~ - import random
4 U- [! }1 [6 T |" o - random.seed(888); a$ m$ { O$ v) }$ z
- data = []1 p' V+ R" S0 h' Y
- for i in range(15):" M- w7 q- @8 H1 x" M" o" ]. C' t
- data.append(random.randint(1, 100)) D* s' Q9 |. G' J' |9 P/ h2 n' W
- data.sort()( I, Z1 D2 L5 D+ ^6 z0 \7 e$ T
- print(data)* B% u9 R- {! Z e, R& m
- for i in range(0,len(data)):
7 b! S) w, F/ G) P! { - if data[i]==num:
) `+ S: h& [7 ~ - print(i)
- s. V, b1 [# Q' |3 |) W8 H - break
, G0 }& r0 J) _+ } - else:7 L+ `8 G' }2 C+ b7 d
- print('查无此数')
& m9 f2 J) D% O& F+ @) F - LinearSearch()
复制代码 , E% F! f: \* I4 n' Z, J( t
" ^ W) o3 _$ K; u8 ~ |
|