|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。
( w5 S2 D$ r; u
/ f# _$ E* [7 [) A
实例- def search(arr, n, x): 8 _1 m! b6 W9 K
- 5 u9 L3 ^' [) `- ^. v$ _
- for i in range (0, n):
# u$ S2 ?+ F. w* l - if (arr[i] == x): & H5 ^6 |; R0 C% |/ X2 z3 a
- return i;
' p5 O: u7 K; X - return -1; 3 ^& c* U* e/ b0 `; Z) s/ I) P
- : n- n6 Z5 i+ a; i- N- w
- # 在数组 arr 中查找字符 D
8 O9 N5 K) j+ Z/ O: h# g* g c5 @ - arr = [ 'A', 'B', 'C', 'D', 'E' ];
$ ^& X, J ?1 c/ S$ Z( r. [6 d - x = 'D'; * W: B6 Q6 C# G: a% Z) W
- n = len(arr); $ L, ?; H1 L( M# E3 h8 O K$ F
- result = search(arr, n, x) : |+ s/ U! W) w& L, d
- if(result == -1):
& b% R, q6 z7 J - print("元素不在数组中")
6 j: W- B+ J, a( O3 X - else: / R* f& q- S# ~: N
- print("元素在数组中的索引为", result);
复制代码 执行以上代码输出结果为:
6 r! u( f! M! n) W- {9 G& v6 ^/ x4 }' c7 d* |
案例1:- def LinearSearch(list):
8 M z$ G7 |" F" F- U - num = int(input('Number:\t'))
$ ]# X. G" Y* `) E) d - counter = 0
, B4 m, W" i- y$ Y, l' |9 b - null = 00 U9 A/ p1 d; d1 S* e9 A9 e
. @- Y! q7 {1 ^# P- for i in list:
0 Z# B- Q, W. I$ Q - if i == num:! d9 w7 ?; d- f
- print('Find number {} in place {}.'.format(num, counter)), p# N% l. k6 e
- else:
% a0 N- Z/ P2 Z - null += 1
; z# i( t1 x4 b' H0 I" v- E7 a! [, ? - counter += 1
3 ^- @8 v" B0 R2 { - if null == counter:# K4 Z" j6 Z( X
- print('Don\'t find it.')
/ _+ J3 R. i4 W: j; [8 h - ( g% e2 E6 M# H' J8 [
- list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]
$ {" n/ h0 [( G2 D, S - LinearSearch(list)
复制代码 案例2/ X/ P, Q1 R2 n) R& w% w% J3 g
- def LinearSearch(num=50):. n+ J6 X% E2 o6 F: u+ X+ R" O7 A% t
- import random# _+ h+ r Z7 u9 P, H/ A% z
- random.seed(888)
7 L5 B+ k, N4 S5 S, Q - data = []
. ~: |/ t8 {: R, h- `) n5 W( Q4 ?2 I3 { - for i in range(15):$ M; s# V' {' j/ i
- data.append(random.randint(1, 100))
$ S" {0 l% V+ [ - data.sort()- t O0 {0 h2 v9 W0 l" c& T
- print(data)
- \# g7 G* P8 S3 {* _( ? - for i in range(0,len(data)):
& j8 d' p) j6 j; s1 c - if data[i]==num:0 R9 a D; \+ |: T/ }/ s& l b
- print(i)' e& V- M' a7 _& p" o, ?, F
- break
8 p2 [5 d( |9 T& U8 T - else:
8 }0 n% [1 D9 E - print('查无此数')) S* W1 p! S( Q* f+ k
- LinearSearch()
复制代码
, y. j9 ^2 X# m2 o! k# k" C; X$ C) J1 _
|
|