|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。 . R6 l: i( [) F, v4 M9 n
: r7 q4 F$ [. }! v8 U6 g' ?! a实例- def search(arr, n, x):
3 d; ?2 U1 @3 M8 v& j, ` -
. _( J- V7 f4 d) z. p% ~' ~ - for i in range (0, n):
$ [! J# ]- y# ^1 a- h - if (arr[i] == x):
+ \1 w: J- Z3 y9 b2 Z - return i; 7 z) O' U( s% Y z) ^
- return -1; 3 w' W7 _0 M% `. R1 d* y7 l
-
L. i$ d% W3 x) q' g% _ - # 在数组 arr 中查找字符 D
) |* x- i/ s b5 p. A - arr = [ 'A', 'B', 'C', 'D', 'E' ];
) ] W/ B" ^$ ~8 ^0 Y- e - x = 'D';
7 Z# L3 x4 s5 F- }) w! d - n = len(arr);
, B. O! E n7 Q# m) C; `, F - result = search(arr, n, x)
& ^1 o% S* D" @+ P" g) | - if(result == -1):
# P6 |( X4 D$ M5 R; p+ n& O1 P - print("元素不在数组中") ; R4 L: P0 T% |' L
- else: f4 _$ @& N+ i5 M/ P3 W
- print("元素在数组中的索引为", result);
复制代码 执行以上代码输出结果为:+ j% `+ O2 p. {+ @
) _7 n/ T* h8 K: a案例1:- def LinearSearch(list):
( ]( w1 [5 o7 {/ _ - num = int(input('Number:\t'))
0 U" x, i+ a: ?2 @* h& d - counter = 0+ Y4 W/ o( h3 J! Y
- null = 0, E. l$ ^/ `4 g1 m4 x6 l7 K! r
- # z5 x% g, f% t
- for i in list:
7 m3 G! X) l" i3 z - if i == num:; h( D) P m" c, d( D
- print('Find number {} in place {}.'.format(num, counter))
" ?' r7 E& J- a* v; X% G4 x; z5 ?( { - else:1 Y+ ~% P" V/ z4 a9 \% p- c
- null += 1' k# k7 V1 F# X4 _
- counter += 1& m1 k: s: v- d8 q; _9 p, R/ g
- if null == counter:( ?! s# W/ k7 c- A0 N: p
- print('Don\'t find it.')- Q. {2 j- `) o9 S) d, U
; P0 _' j/ X/ G) h- x1 f- list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]5 |9 S. [/ \3 o3 m# F; R5 R
- LinearSearch(list)
复制代码 案例2" H6 `( M2 u# f: U5 n5 Z/ S
- def LinearSearch(num=50):
! z% K, S ?% f( k; [5 T% }$ s# u - import random
& |) t' F5 Z1 R9 p6 @* \ - random.seed(888)
% b( \$ D, \4 D9 E( { - data = []. I9 E% n* Q8 r# x& A
- for i in range(15):
! H% J- M: b7 |1 s; P/ p - data.append(random.randint(1, 100))5 X7 o2 ?7 i. l9 [
- data.sort()# U; G# I1 ~ i; F- v9 m6 }
- print(data)
# m I& ]( k' ^% A7 X - for i in range(0,len(data)):8 Q& @$ O3 |1 y0 R: T% O
- if data[i]==num:+ M' I `. V3 |9 t
- print(i)
, y% C- X f1 i# ~ - break
$ C7 i7 ^. o/ F5 W7 V - else:( c1 X0 h$ a" ]3 z1 {, }
- print('查无此数')
# ~* M# l( A7 d- g - LinearSearch()
复制代码
! c8 U1 k+ p) A F
2 n" @% v4 g2 E n |
|