|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。 % o, Q1 Z- A# A/ n; l8 a
1 O+ ?" [/ F* [( F实例- def search(arr, n, x): ; v( T+ i% I7 I! U2 C0 o
- $ i4 w* f- Q0 Z8 [( ~
- for i in range (0, n):
3 @! B$ M: J' n+ @5 P2 n" ]5 ? - if (arr[i] == x): $ j1 u7 b& \5 H# B
- return i;
9 Y( S3 W7 j" R4 O- S( `( V - return -1;
1 u v9 _3 Z( X -
0 ^$ w& \6 }8 t2 ?6 n1 ]# f) E - # 在数组 arr 中查找字符 D
: c* [7 W1 I- y3 W8 R- W - arr = [ 'A', 'B', 'C', 'D', 'E' ];
) g! |; J8 d$ F1 k - x = 'D';
- f* S) s9 U) h( N4 E3 p& H - n = len(arr);
: ~2 j0 ^5 ?! _, {! T0 I) ]& T - result = search(arr, n, x) 2 G9 V" d. j' d0 A! p3 Z9 B
- if(result == -1): 5 D% Q3 f( {2 A# u
- print("元素不在数组中")
' f1 n; W( \" J - else:
# `2 i! o! q# k* w* T+ S5 w. o - print("元素在数组中的索引为", result);
复制代码 执行以上代码输出结果为:
* i. M" b- u+ f6 t/ H1 O' x8 c
" ?" v, F$ o3 \: P案例1:- def LinearSearch(list):
' t) G- M6 d' P9 ~) i3 ], R; d' ` - num = int(input('Number:\t'))5 Z/ Q% W# j2 z" X: n
- counter = 0: ?2 L9 {) d, |' W# p
- null = 0/ B7 |4 J) S4 M+ `' z2 X
- 6 Z/ ^$ _& P! ^" G
- for i in list:$ @# w; U0 ~2 T( j/ p
- if i == num:
8 p. g3 p3 ?/ D! s5 i8 u5 f$ ]9 J) A - print('Find number {} in place {}.'.format(num, counter)). X( e# V; x j/ e
- else:/ U. ^4 { d0 `1 g$ e0 x
- null += 1
/ m/ o4 t* G! o3 Z' { - counter += 1 \4 X3 L) c! ?. @% M" O
- if null == counter:
# K( B4 }% g( u& Z2 Z; f' r( |8 y6 i; F( I - print('Don\'t find it.'). G# u8 d, g4 q' C
- / R5 V& V6 x: @, [4 F# Z
- list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]' E) L3 c. T6 o
- LinearSearch(list)
复制代码 案例2( l, I" n; [1 L/ Y( o- Y1 w
- def LinearSearch(num=50):
+ x4 z" d" E1 q; t' ? - import random
, z: v3 J1 q. `5 D - random.seed(888)
- X8 m! H, W% } `6 `! Q* M3 _ - data = []
- I+ y& s4 z5 P# x* N - for i in range(15):% L+ i1 ^% N) h7 K6 U
- data.append(random.randint(1, 100))
3 u, x; q+ O4 N: G% Y M - data.sort()
6 s7 o9 i) |8 j - print(data)
, Y a$ W, f7 V. T6 v2 `* T9 X& e - for i in range(0,len(data)):6 ^ U8 O& V: h+ j. E
- if data[i]==num:' N7 F4 \8 g! A& N
- print(i)) R$ v6 C B9 n, _ `& i
- break) n7 a0 f( o5 k& ~) a% R+ e2 l
- else:
* B" @( Y* Q8 b- _ - print('查无此数')
7 S- t6 a. o9 T% X - LinearSearch()
复制代码
m3 q4 o6 R2 z8 W+ [$ {; h
1 r( n7 r& g6 R+ _/ \1 n6 p7 q# _% x |
|