马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。
" y E. R. M& X/ j. h) n$ n H0 m! D6 ~
# [( k0 u& d- R实例- def search(arr, n, x):
, _. n" a+ U0 F% H. } - ' f J1 ~& }0 K- g
- for i in range (0, n):
3 J! o) _+ k2 N - if (arr[i] == x): , D1 P1 J" }8 M' m/ T1 @: ]0 V' P
- return i; 6 V$ c% `/ c* o0 H
- return -1; " o" p4 |/ F* j5 v7 ~: N0 _9 ~
-
( k- k% h, u3 z( Z2 \% o$ n - # 在数组 arr 中查找字符 D0 Z6 ?0 R1 |7 U) l$ p
- arr = [ 'A', 'B', 'C', 'D', 'E' ]; $ U ^/ R, C0 r, g$ H* `
- x = 'D';
, d8 w$ _ R# I; T% \& c. x - n = len(arr);
, k$ ~8 h, Z( R4 m. d* E - result = search(arr, n, x)
8 D6 H: A1 F3 y6 `0 E+ k' E - if(result == -1): 7 M/ B3 V& m3 B% k. G9 f, g
- print("元素不在数组中")
& }' w/ ^1 [# |! o! i3 o - else: + w3 o" c# f0 T. _# P( N7 b' o" [
- print("元素在数组中的索引为", result);
复制代码 执行以上代码输出结果为:" F# V7 S0 k3 _8 y
. _' U& I- n% b: C案例1:- def LinearSearch(list):6 V& p: b% F3 q3 @( O
- num = int(input('Number:\t'))
6 K- B* H' A: U3 t - counter = 0
1 F6 ?) m! H/ ^) c" p/ X' Z4 y - null = 08 D3 a# ~5 K# N9 I# i6 X5 G2 x
) m( `& O. j/ v. z, _- for i in list:
$ l, C ~1 A) D& r- a8 V - if i == num:
" F$ H7 B& I1 o# q7 H- ^$ ? - print('Find number {} in place {}.'.format(num, counter))
$ X6 c5 F' c, b4 w# i( F - else:3 q0 e8 Q3 m$ m( F0 H& C# l
- null += 10 {( g6 z( a, I( l6 i, e- t
- counter += 1* k) H% R5 W9 U$ c
- if null == counter:
) \, t( u) y$ ^- b* ^. r - print('Don\'t find it.')+ _+ @+ m7 e: L2 [0 D
- # W5 r. n" O# H/ b0 o9 b
- list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]. S. n" N$ M0 `; s8 q
- LinearSearch(list)
复制代码 案例2
; T: Q( ~$ \+ J/ c& @/ w, e, ~, R3 H- def LinearSearch(num=50):
) U9 q f$ M( {6 i1 R i - import random
7 Z7 p/ E. \/ n' j6 _ - random.seed(888)7 M5 v a: G/ W* q
- data = []( W+ m1 j3 V6 }4 j0 V& @9 i
- for i in range(15):
: d$ T$ T+ R3 k* I% m - data.append(random.randint(1, 100))' g: v' [6 W2 M& ]4 I
- data.sort()4 z2 n( u# |- q
- print(data)
: z0 k' X) t$ F4 L& C% M2 {- Y# F - for i in range(0,len(data)):1 c# B% X# I" u5 J K: h
- if data[i]==num:& o' n* ?3 b" j+ @$ @7 s: H1 Z
- print(i)
- @1 f! J$ b6 M8 s9 K y - break8 v& _2 n) m' t4 k0 v
- else:
& o# m5 X) M& y - print('查无此数')/ S) P Z2 Z( @$ {/ g1 x
- LinearSearch()
复制代码
* D* i1 Q$ U! n& i$ q% N6 X! [
- a/ U* V5 w4 j- i+ ^, k) x |