|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。
. m4 p- L& @' S; L/ p
# Z" k) J* l$ }5 ^9 L. l实例- def search(arr, n, x): , Y$ j8 N; ?4 g9 w$ F f% f# O
- ' T6 Q3 a$ R% c; [ ~: j
- for i in range (0, n):
0 [6 e$ d/ W1 @ - if (arr[i] == x): : q5 J/ K2 J1 ~3 A$ w
- return i; % b& J- ?( p) S8 o# K* M
- return -1;
1 D; g7 I* X/ ~) r* e4 m - + f6 y5 o, L& S. e$ Z; \0 X
- # 在数组 arr 中查找字符 D4 |; u( Z [0 p1 ^6 ^
- arr = [ 'A', 'B', 'C', 'D', 'E' ]; ! |! t; ]& I1 x
- x = 'D';
\+ h( x+ [0 {& N; }# w% V+ V - n = len(arr); , F8 A/ s; G7 j! o6 B2 h
- result = search(arr, n, x)
; [* `! `6 U( Z/ r% e) I1 k( W - if(result == -1):
0 o8 ^) ]8 X& x- X* Q, X! g - print("元素不在数组中")
# h# r# o7 p( k3 |) z9 e. K# V3 _ - else: : N `& I& q6 h# l
- print("元素在数组中的索引为", result);
复制代码 执行以上代码输出结果为:& k" [5 Q& ?- {, V; X; [1 D" a U6 I
; X1 n* h# }- \! N案例1:- def LinearSearch(list):
) g4 a! G+ X8 E, F; ]" f2 s: |4 j1 b - num = int(input('Number:\t'))
7 r" E7 }+ l, o' l* n) x - counter = 0
2 |8 w" s1 |% t; q2 t R' d - null = 0
& r: U: \" n0 a8 e) ~1 z
6 z0 c v2 Y) ?' P6 v- for i in list:
2 C+ p; E" z' @' I - if i == num:& Z1 R$ {) {' ?' ]4 J2 Y: J: l
- print('Find number {} in place {}.'.format(num, counter))" E5 M0 m6 H0 K- H
- else:- O& r! e8 y8 f
- null += 1
' Q K/ L/ n3 F+ \- C - counter += 1
& U) \ j9 S; n [! P4 T* ^: r - if null == counter:, r" h! @! G9 T1 A& Y
- print('Don\'t find it.')
/ B [! a9 r& G" l, u - - t& m; [9 ^6 w6 h# m4 {9 `! K
- list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0] G2 q$ |4 P" p; [$ r+ V) I
- LinearSearch(list)
复制代码 案例2
" c G* p' L% W! ~' S5 l4 t- def LinearSearch(num=50):
0 t9 n: n/ b S( P2 E- i1 u& @ - import random
+ c6 c& Z& s7 Q3 M) x! L+ h7 @ I+ R0 I - random.seed(888)- h( E' x" n/ f
- data = []& F) Z6 |$ `7 r7 y( l; a
- for i in range(15):: h, u, [/ F% d
- data.append(random.randint(1, 100))/ U# z2 f& W" [$ j
- data.sort()8 e1 ~! f+ f" M; u3 b. S
- print(data)
! t' \6 E" v; G - for i in range(0,len(data)):
/ S- N0 L) N* ]+ b7 q - if data[i]==num:/ r. R3 _+ w# G' @0 g5 S8 B
- print(i)1 d9 g* q* F4 {' l- t
- break
$ c# w7 r7 P1 A# ~6 @$ m/ u - else:
' @6 t( c2 |% f' G* H* { - print('查无此数')4 G8 t, s( n7 K; a) Q+ N
- LinearSearch()
复制代码
! l' j+ \8 P/ W' `* L7 ]1 Z3 F3 v o4 T! l# R' Y. k( h5 F) }
|
|