|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。
6 \: a6 _6 y( g: Z: u
) I ?' O r: ~5 \9 ~- ?
实例- def search(arr, n, x):
* W% ]; w0 ~) U) r! x8 s1 ?/ r -
7 R' [- U7 o+ F) s1 Y - for i in range (0, n): 3 |: O J& ?! F( y5 |+ N
- if (arr[i] == x): # a( G! Z7 W& H9 y) M) j* B
- return i;
. i7 B8 P5 D' `, W" H - return -1; ) v& p& A# f6 G/ p' Z
- ! W3 I- B' I! ]- o
- # 在数组 arr 中查找字符 D) c% B: v4 {' }, j/ A" E
- arr = [ 'A', 'B', 'C', 'D', 'E' ];
1 X; e& \& j. p3 j+ { - x = 'D';
1 F' u) }. Q( X4 @# V1 M4 y - n = len(arr); : n' }- `4 D& M9 } H- ?. s$ L
- result = search(arr, n, x)
# p( U, W* @. z R6 _7 Q - if(result == -1): 1 Q# ^4 L3 F" t" \
- print("元素不在数组中")
' ^' z3 [8 U0 o3 w+ \ - else:
6 l' @5 {7 \# h! o# s - print("元素在数组中的索引为", result);
复制代码 执行以上代码输出结果为:! H- y. u5 C# d, U9 m3 U7 H3 {
; V; [+ e9 j+ _% m# M! f( G( n
案例1:- def LinearSearch(list):
' l! w% n# s$ |: V' C - num = int(input('Number:\t'))
! C6 l2 i& {0 m. W/ b - counter = 09 a0 S0 P" B1 \2 [9 Y/ z
- null = 0
8 {+ f* j+ b- r- g3 b* Z8 |% e - / T; |- E, v0 s
- for i in list:3 J% I) H6 D0 h, p: T! D1 z
- if i == num:1 H4 M2 N& I, f! u& {5 |) w
- print('Find number {} in place {}.'.format(num, counter))# h" v* c+ U9 w( c9 ]0 w9 k: M+ U
- else:$ @' Z6 J: X) \3 T% J0 \# _
- null += 18 Z; q M+ p5 V: X3 a; M
- counter += 1
3 |9 w- c' ~6 i - if null == counter:
4 |: F2 ^: K! l& { - print('Don\'t find it.')9 T5 W4 b) ?9 }- e9 k
- $ [+ ^' R8 N7 b0 t7 o2 Y ]- b, R0 X
- list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]
: A7 z, T T& C5 D n g0 f - LinearSearch(list)
复制代码 案例2# ?3 i( f; y3 S* x
- def LinearSearch(num=50):5 {6 X& s) c7 x9 e8 O
- import random8 T# c# B8 O' Y! E5 |3 l# f% T, w
- random.seed(888)
% n$ D& E+ D; B+ @0 z, y! a S* A6 v - data = []
8 a) W5 T0 ^7 o4 X - for i in range(15):5 u0 z4 Q& O% p1 d+ ~! p
- data.append(random.randint(1, 100))
/ o0 o) g5 M) Q4 i* a - data.sort()6 t. S0 L- G) I& C% V4 a
- print(data)
+ F E; ^4 O7 V( @% J( ^ - for i in range(0,len(data)):/ @+ G+ v- w9 J) }; V# \' T" Z
- if data[i]==num:/ S9 ~/ q* @7 |! l; P
- print(i) ]! `8 z/ X! x5 z5 c( Q
- break/ ?; S- W7 l" ]4 X
- else:$ T' S3 y3 X8 x
- print('查无此数')+ m2 f0 S" G+ Y: z. X6 E
- LinearSearch()
复制代码 . c, i! ]( l2 t( T7 [% g: r* S! H
) m E" z6 F5 w |
|