|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。 " M; _4 t! i J2 w( L
8 @8 @6 b% Q& V! t: w2 v实例- def search(arr, n, x): : W; @7 t5 K, a* E; F; Q& h* o5 ]
- 6 I3 Q! N" j/ J( i
- for i in range (0, n):
, C4 M) j) t- s3 P7 _ - if (arr[i] == x): 9 y H h, \1 m
- return i;
. L' [; v! E9 @: T6 K# _6 w - return -1; 7 t: Y! M8 x- v0 [' p
-
2 E( w% `; w5 E6 k6 l1 @/ G - # 在数组 arr 中查找字符 D8 |3 q# f5 ]5 S
- arr = [ 'A', 'B', 'C', 'D', 'E' ]; : }7 ], E9 o# Y5 U0 ^
- x = 'D'; 2 B' a$ `/ H g3 u* p: v% ]9 v
- n = len(arr); 2 i# k, n- W7 _, d
- result = search(arr, n, x)
& X% U! d h$ \ - if(result == -1):
2 z9 w0 Y3 g% t4 q7 R2 W - print("元素不在数组中") 4 \9 l, o5 H2 S+ G
- else:
- I8 A/ B* h1 v9 N - print("元素在数组中的索引为", result);
复制代码 执行以上代码输出结果为:
- Q5 w9 n% ?' F7 d: f# ^7 u: o) ^: T; k
案例1:- def LinearSearch(list):6 J. g# C. o8 B* S1 E
- num = int(input('Number:\t'))- ~' c2 A4 X. ~6 o2 V9 t3 J/ {
- counter = 0$ H) ?! G& R% M; k# ^
- null = 0; w4 |- f- F- Y' Z. X' ?. B3 J
& G* \3 l$ ^' Z1 \' L0 t3 j5 c5 \- for i in list:# z# f4 E, x$ d
- if i == num:% U1 ]* L& W/ K s9 I
- print('Find number {} in place {}.'.format(num, counter))* S* G, o3 a8 G
- else:
9 o2 V5 }! _3 a - null += 11 H' X# S5 \' w
- counter += 1& {+ D: \2 r( _, _
- if null == counter:
# U3 }& N* i4 F% H( L) f - print('Don\'t find it.')& n0 B* N5 a- ^) @+ M" ~$ M
/ Q1 T* E: C0 Q |6 F& e- list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]
9 \- Y! B4 w. p - LinearSearch(list)
复制代码 案例2
% P7 y3 Q ] k N" V1 M- def LinearSearch(num=50):
& f7 z [3 E7 q6 ~2 h3 e n; I - import random- k1 T# T( u+ D6 b7 p4 k B X/ [
- random.seed(888)6 Z' j% H$ j6 y a' k. H
- data = [] |) f/ L7 ^& s5 i+ ]5 ?
- for i in range(15):
: @9 n" B3 v+ h* m - data.append(random.randint(1, 100))
& t/ C2 a9 I% v0 ]* { - data.sort()
% h0 W& h. [& j' x9 P - print(data)
$ j* S" K, d# k% O" b - for i in range(0,len(data)): @) @& E- U# r! ]5 V/ A
- if data[i]==num:% C- u$ r0 Z, s4 B, O
- print(i)
1 v# @3 s% Q3 ~+ W3 [8 C* G) x - break
8 J! ?* S4 k& t - else:5 i! n! S8 n+ N9 _9 U
- print('查无此数')
* t+ X5 H+ }2 j - LinearSearch()
复制代码 m6 }5 m5 ?+ o
( L3 S3 `( C/ a- J" M9 q* q6 I
|
|