|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。
7 a8 V5 Q1 {4 W, [) T: z; I
: o; ^6 w7 g# R实例- def search(arr, n, x): & B% N7 y. J/ `6 |- u% J+ |
-
* Q- D. O2 }1 K, u, V# i - for i in range (0, n):
3 ]: b4 F3 I& |* K3 B2 d+ ?. _ - if (arr[i] == x):
! w3 p+ m6 J0 e3 G - return i;
3 O- f: P9 Z* G; m - return -1;
# e5 |6 }; L. o4 h* ?8 `0 ?; b' x1 P - + k C+ Z3 j- l" j4 v2 P
- # 在数组 arr 中查找字符 D
* e- w+ |( y( U. Y- w' e - arr = [ 'A', 'B', 'C', 'D', 'E' ];
7 S; C' w7 f3 P9 `' ^( g6 U - x = 'D'; - o3 X8 S& F. C* @" D4 C
- n = len(arr);
9 N: O9 K* [( d - result = search(arr, n, x) ! V; H7 g6 u$ G! ]
- if(result == -1): E! z0 x+ X; B7 g* [: y" q8 z
- print("元素不在数组中")
. }5 K' w* A" A7 ? - else: 1 L3 [- O( g! f+ U$ A
- print("元素在数组中的索引为", result);
复制代码 执行以上代码输出结果为:, e$ H# Z+ f( b! ^
1 A( t6 R* V! M% o$ \案例1:- def LinearSearch(list):
1 X" e) }$ O9 W% ]4 M+ ` - num = int(input('Number:\t'))) T* P* M w! }3 i/ H! \
- counter = 0% t( I1 t$ D2 d0 R; s. @1 {& k5 p
- null = 0) Y/ M8 S5 g& T0 C9 v# g- [/ s( v3 R
. n* x7 J9 i: `: J! i" W- for i in list:
2 R: S$ |7 Y9 A5 m, V. w8 U0 j - if i == num:
; ^0 }9 v5 R( u @ - print('Find number {} in place {}.'.format(num, counter)) ~: t% |9 Q! S. {; }5 ~# C6 m
- else:
" [2 Z! u' g( b$ I, S* R. r3 e - null += 1
$ k+ u2 I5 F1 l: G# O+ K - counter += 1' C& F- W6 z; W1 K( E( }' O
- if null == counter:
" ^& r4 [5 q! U1 E; @& o - print('Don\'t find it.')5 `3 \) X8 h2 u0 j" u
( t% o8 C& a+ j h- R9 F5 m6 b- list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]) ~! }+ i$ L) L
- LinearSearch(list)
复制代码 案例2: L; x" M3 u; z; @% y
- def LinearSearch(num=50):
6 O4 j0 n' S3 _; G - import random1 l9 R, U! J- X/ S+ {5 |7 o
- random.seed(888)
3 K E) S. o, y0 M - data = []
3 \4 ^3 t. f" t, Q! ~ - for i in range(15):& K/ d9 e9 a6 u( ?6 P
- data.append(random.randint(1, 100))
5 s) u8 q4 E& D - data.sort()9 ?! H2 R$ z' J( D+ T: B2 V ^
- print(data)1 v6 v% p" v% f) F$ H* ^
- for i in range(0,len(data)):
8 B( K! Y0 _; F: o0 j6 h# Z - if data[i]==num:
: |8 y1 w G' C3 G W9 U - print(i)9 Q( g) \8 s; n2 a6 R2 H5 }
- break
; s0 s4 V" h& B7 @ - else:+ {1 U, T0 Q$ m
- print('查无此数')! \+ p5 q c+ i$ N# |1 ^9 G
- LinearSearch()
复制代码 7 p* P* _7 r5 r% K) F& g* V( s3 ^
% |; ~5 l8 J2 J, y4 q- L, E |
|