|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。 7 J7 b9 y! o( O" }( v
8 a. i! {: `# O6 z
实例- def search(arr, n, x):
0 h1 g6 e$ b" a' p& k5 C* d -
2 N9 T$ c C" N - for i in range (0, n):
8 J, h* e5 D1 r - if (arr[i] == x):
5 }* i. g- j* x& l6 G3 F& U - return i;
' g* G- f0 K& g6 S - return -1;
$ C5 b& b: @2 d: b) P6 ~" h - 3 S4 u' E5 w# f w6 v% ?* ^- K" @$ j
- # 在数组 arr 中查找字符 D
7 x" T$ x% R. G9 w* Z) h1 y9 ?" |' N - arr = [ 'A', 'B', 'C', 'D', 'E' ]; . F+ ^3 p0 K4 U; r/ p1 O
- x = 'D'; $ I( d4 s$ m8 D' \+ a; f8 [
- n = len(arr); " E' T* z( Y( k( O
- result = search(arr, n, x) 0 e" L# k. |' Z( B, l
- if(result == -1):
8 |/ l: T/ y: K- o+ u3 i& y - print("元素不在数组中")
6 C$ O* A& _0 O" S* E$ }" u1 h4 a - else: / x8 I+ `# O5 o7 v- F1 _0 q0 }) d
- print("元素在数组中的索引为", result);
复制代码 执行以上代码输出结果为:/ e4 G0 y% K; p4 P1 w
% r, m* i6 \! N: W$ P
案例1:- def LinearSearch(list):$ w% t( k# { u' `) o
- num = int(input('Number:\t'))+ Z9 @) z2 ]; @' x3 W6 L! I4 F
- counter = 0
- q* b+ i1 ^. e& V. X) H( H - null = 0: N! N8 y6 I- G7 W8 T5 N- c
- 0 V9 u9 k7 j5 d' L7 F7 M9 F, R3 f# r
- for i in list:
3 z: @& @2 }( g x) M - if i == num:
7 k$ O& Q0 k# j Y: s. n - print('Find number {} in place {}.'.format(num, counter))- }! X6 G5 c1 J% N+ P
- else:( {3 `) N( e7 ]" V
- null += 1
4 H% l) c) {- `4 \- ~9 K - counter += 1
0 @, k8 p$ p5 H1 J" i$ F1 m) I( Q - if null == counter:: Y5 y t$ M! X/ O0 {0 m+ y5 o3 c
- print('Don\'t find it.')
1 J. Z! M; _) m$ U1 T - 3 U. {& n, ]- P7 a5 K x
- list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]
# a2 b2 S3 w: Y3 [! V. t! Y - LinearSearch(list)
复制代码 案例2
! Q! v0 h$ R; ^7 j- r- def LinearSearch(num=50):/ p q; m( |5 G) w8 }" `9 B
- import random
0 q4 e* p d- E: A/ `9 X( l9 | v* i - random.seed(888)" a% l! c6 D9 P0 w: D8 W4 n% ^
- data = []
* O% K* j& m3 @: D+ T( H+ L+ W - for i in range(15):6 y; p/ K" Q- L7 U& s
- data.append(random.randint(1, 100))
8 z' ?* U u- d6 p. Z. y" g - data.sort()( x+ `9 E5 C. A5 C3 P$ C3 u* o
- print(data)
1 H$ [/ E3 [# l H6 F) K; J9 E - for i in range(0,len(data)):$ P4 `% L! r6 B D# L/ U. ?4 y
- if data[i]==num:4 k! G! W: ], F" }& t: J, T
- print(i). u3 J' [/ B, ]' f/ I" p/ {
- break- R& S% Y) T; \, W* [
- else:
4 Z8 n8 I. u" M+ O5 m a. P$ @ - print('查无此数')
; }" ?$ F! i! h) h: n x - LinearSearch()
复制代码
5 Q/ m) n" ?! p- m% X0 d
% Z. ? u, N+ }' M0 Y4 p' s( L |
|