|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。
I4 x/ A: x7 G, ~9 E$ n4 Q! b
" R# T, T( ^) \6 E; |; f0 w实例- def search(arr, n, x): 1 S3 g3 m, |" d8 Q2 w
- ! z8 f; U: ~% E& W5 p% q0 b, M
- for i in range (0, n): 0 x. A5 S% Z; [5 M |
- if (arr[i] == x):
7 g1 m2 | R! l$ y1 g - return i;
7 z% N6 \& h: s' j0 u/ r1 j2 U% U - return -1;
; f" P6 S9 i+ H2 F( j -
" V7 h; F+ i) x, V4 I' K, p - # 在数组 arr 中查找字符 D
6 s" Y6 O/ t+ h9 i$ c) X - arr = [ 'A', 'B', 'C', 'D', 'E' ];
# Y: h2 I0 K: G0 f8 I: m3 W - x = 'D';
+ h8 O5 W, y3 B5 W. y - n = len(arr);
6 `; x" E4 w+ E* j9 F - result = search(arr, n, x)
# R( d) ]& x! d" n4 \' F - if(result == -1):
( o8 s+ t3 a2 Q0 j- ~2 L, { - print("元素不在数组中")
$ Z3 L6 y+ e/ d* |: {) J1 U3 [. M - else:
! k( J5 t9 D& h - print("元素在数组中的索引为", result);
复制代码 执行以上代码输出结果为:: Y! e6 _( t) h
$ k. U& y8 \8 c+ W
案例1:- def LinearSearch(list):
6 B- s9 }. C, f: {7 V - num = int(input('Number:\t'))% p& T, X' G$ I5 N& B0 V
- counter = 0
3 G; I: X1 u" h0 j" Z - null = 0' I7 O# g/ P9 X9 o
3 N( M: Z9 j$ c' ]7 |- for i in list:+ | q. U: W2 h, X% J2 f
- if i == num:4 R( {2 C% q5 U2 H" G
- print('Find number {} in place {}.'.format(num, counter))
+ I0 K" {$ _ q$ q+ T - else:: _# V- q* d! C2 y. S
- null += 1
* L- [: z: W& J, Y; Q2 {7 S8 ? - counter += 1
( p' r" N i! l& I - if null == counter:
. K1 u' U! c& h7 q( S ? - print('Don\'t find it.')
# u4 @8 D1 h, ]4 H- |
5 K5 S' y; Y$ G0 y# r- list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0] V: A4 A0 M3 \- Y
- LinearSearch(list)
复制代码 案例2
: r! [# Z0 |$ H$ N5 q) o- def LinearSearch(num=50):, S2 n( W4 ~, J' e! p' E
- import random
3 n+ s- ~8 ^0 w; D: i7 d. J' \ - random.seed(888)& @7 n8 W; z9 n+ ^- O0 x% ~
- data = []
8 [* R. _- @! l; E5 p. |" G" J - for i in range(15):! K G. I1 ?2 M- {
- data.append(random.randint(1, 100))* c2 J; c" N8 G9 A1 Y% h
- data.sort()+ x% A/ ~1 x2 Y& S
- print(data)5 i$ R4 g! {+ i3 V2 I1 ~% x a
- for i in range(0,len(data)):* H O! q1 `4 U/ j
- if data[i]==num:
& C5 U, y( \( @, O+ H - print(i)
4 W# D& k4 W& B - break9 D& ^; [/ b r) @
- else:
: c/ Y& _; X# K) M - print('查无此数')/ k+ b) t3 d$ \# G9 a
- LinearSearch()
复制代码 - g$ v) ~1 G( G. u( u+ m
5 e y& J6 P S |
|