|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。 7 L, j6 ]' m. f9 j+ q" l% w
. P9 w0 v9 u0 x$ ]4 h实例- def search(arr, n, x):
4 K8 u6 @+ Q( K! {6 J3 `8 f9 c -
$ ?$ e8 @$ K. F8 T' l+ q - for i in range (0, n): & I9 L" |! U& Z+ M. f* W
- if (arr[i] == x): ! q2 ]' _+ H! d G0 Q. r
- return i; * z+ r) w& }5 _2 i( u) |
- return -1; % k% G3 F& f$ W0 D4 ?0 v2 ?( t
- " ~* U Z, Q$ p$ O. k5 D" o
- # 在数组 arr 中查找字符 D
# [/ b1 z# b3 U2 d - arr = [ 'A', 'B', 'C', 'D', 'E' ]; - f! A2 L8 @6 O2 \/ r' c
- x = 'D'; + R; ~: f" [! ~& f. r
- n = len(arr); ( m' |# B. T' ^* L9 d [6 b
- result = search(arr, n, x)
, w% G5 I2 _2 m5 r6 ~ - if(result == -1): 3 s' T- i" I4 \( }
- print("元素不在数组中")
& E" y L: `& w0 f - else: . _# D- v! y' D! _
- print("元素在数组中的索引为", result);
复制代码 执行以上代码输出结果为:
6 W4 s% u8 V/ u, G4 m! D
, a8 Z) r; @+ s9 f) K' i! q' R案例1:- def LinearSearch(list):6 |5 [5 ^1 U' a+ D
- num = int(input('Number:\t'))2 a7 u6 L6 o$ m7 p
- counter = 0
5 q7 m& T7 o+ n' {% M: l - null = 0" w0 [) q r: q6 U+ P" d
- ) i0 G2 z" u( p. _: ^; [. {; I
- for i in list:
2 s& l) Q' m/ i7 B4 D5 \7 r - if i == num:
) b9 {! B* J( y/ p; b - print('Find number {} in place {}.'.format(num, counter))! p* W* l1 b4 ?, i5 l. `6 Q
- else:
; Q9 ]! ]3 j6 X& z. B5 y' _- N - null += 1$ f5 @+ ]% R: E: x$ g2 g
- counter += 10 I/ }+ H. A8 ?" w# I; L
- if null == counter:( m+ q% B# `. `2 X6 h
- print('Don\'t find it.')
( ?3 ~' p! F ]. T% S# \
/ w# ~, _. f& Z4 s- list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]
/ R" R3 V" R1 U$ A5 J7 Q - LinearSearch(list)
复制代码 案例2! U. w4 x" i' A3 O& T
- def LinearSearch(num=50):
$ A4 N8 P* k/ \* e( Q - import random/ n/ e }+ R) H) Q: i! _
- random.seed(888)& f) B& y0 z; m4 y' p3 `
- data = []4 E3 O' z& P+ X6 m* d* u* _
- for i in range(15):, V v$ S/ r4 a: N! \% ?8 s; C
- data.append(random.randint(1, 100))
8 R" M7 g! U4 T1 @5 y; k7 H - data.sort()
# g' R% s' ^/ S - print(data)7 b% B8 L0 G2 |/ x7 l) s+ J: e& k
- for i in range(0,len(data)):( c# Z( E7 }: _& m' w* C4 }
- if data[i]==num:
" Z, T$ L% r% t* V% z - print(i)
9 x; |8 H( l+ {! D/ \ - break7 e9 o2 Z* v/ E* L d( B8 g
- else:! [( c+ p7 Y/ L1 B- @' p
- print('查无此数')9 \& F4 q$ x! l' k
- LinearSearch()
复制代码 ; }: Y' U. Z" g x
8 S8 m2 F- I/ W: U" g3 i |
|