|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。 " B% V& @1 k7 L: G0 X0 z
2 z% O9 t6 b& y5 Y: U$ R+ _: j实例- def search(arr, n, x):
T- H5 ~) F/ H! |8 q/ p" R1 \ -
# ?, a' A- R( Y& Q - for i in range (0, n): 5 E) y- \ d4 c; c+ ~
- if (arr[i] == x): 8 k* `: Z0 l( ?3 M3 r
- return i; C4 z: G" ?) t
- return -1; " I: ^& u7 T( J' S; {- g. N5 a- X
- 3 F1 p' ]8 b/ g" I i( b5 ~" a! O
- # 在数组 arr 中查找字符 D
8 S: H$ O- S; j* \6 f - arr = [ 'A', 'B', 'C', 'D', 'E' ]; 3 @4 y+ J1 w: F6 \8 B+ S
- x = 'D'; / m! V8 o- f$ z' A. o4 i! i+ O7 q
- n = len(arr);
5 A6 j7 O% X% g! u2 A - result = search(arr, n, x) 3 d [% F; G- R2 T/ r- r0 N! b' x
- if(result == -1): % N6 j, Y, ]( {5 l* T0 t% Y; B
- print("元素不在数组中")
% g6 g1 I/ b/ e5 z+ S" e8 g$ ? - else: . J5 Q K- w( G6 x1 N+ J- e/ n
- print("元素在数组中的索引为", result);
复制代码 执行以上代码输出结果为:
1 s f4 R9 Q( X$ d' _* i' S* C2 U. {( V
案例1:- def LinearSearch(list):3 S1 I8 h3 o7 N( m; V
- num = int(input('Number:\t'))& D: k" [. e- L: H7 @2 b7 s
- counter = 0# }2 @" O7 ?1 b8 \/ R
- null = 03 I/ i! L) M! Y4 t B' |" ~ Y
: \) @6 v( `+ r: \" F- for i in list:) K; K6 d+ p6 i7 u3 `
- if i == num:. M V( ]( [1 r* R2 `$ D! J
- print('Find number {} in place {}.'.format(num, counter))" O8 w1 x3 P3 D# C( C% d% w
- else:! u( f1 Z% P$ u' O1 N: ]) B
- null += 18 f5 @0 y/ o) U7 r1 ?
- counter += 1. _6 ^8 v2 p5 s& \4 q- }
- if null == counter:
! s. K4 v/ U% {. j' \/ x& ]2 ^ Z - print('Don\'t find it.')
v, o) u' H8 Y, z1 Z, E5 q
- ?# g9 Y6 E& K1 e- P& s5 x4 Z- list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]3 _5 Z# c* a9 |& B% Y
- LinearSearch(list)
复制代码 案例2
# o3 V! L! i3 k( }( N- def LinearSearch(num=50):
) d! c2 p# u' S7 r0 X0 R - import random
" @$ }( `7 {3 L4 g& W - random.seed(888)
7 T4 o* u! ?- u8 V5 s% J - data = []: N/ a0 b. Z4 L# Z
- for i in range(15):" i } x Z' M" i1 v! \# S% v
- data.append(random.randint(1, 100))+ z1 J8 b; p' Q6 g$ A% @
- data.sort()7 D4 N* ]/ O+ C5 U" ^6 _
- print(data)
+ x, \0 M6 `9 h; D: Q - for i in range(0,len(data)):
' J! ]) H. K9 ^2 w - if data[i]==num:
( J7 _2 a9 C7 @( q' r - print(i)
. S7 ^) {- J) h* k1 X m1 S - break/ _: p' K8 F+ A' w
- else:
8 a( n' k' @) h; M0 y, m5 a - print('查无此数')8 Q+ _5 \, N6 I7 @( Q* l
- LinearSearch()
复制代码
* {8 e) G# u0 L v, j
3 c( _) ^5 L6 F% J6 T/ L |
|