|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。
# C7 j8 s9 f. P4 V* t {, d: N
7 v, _. a' u7 ]( J7 ]3 ]
实例- def search(arr, n, x):
% f* q9 @1 j5 w- M - W6 D& u% B( O; w9 [7 c' T$ s
- for i in range (0, n): : U9 u4 _6 T7 j/ W
- if (arr[i] == x):
- D: f! p5 n/ \ - return i;
0 ]4 X) Y$ `0 Z9 M' ?- A - return -1; ; p5 Z+ I( v6 m/ V. t0 ]5 `
- - x; j z+ ?( v1 |: h
- # 在数组 arr 中查找字符 D
/ U7 C* e7 @; s% T - arr = [ 'A', 'B', 'C', 'D', 'E' ]; 4 c( s6 v: K- s# L+ ?8 ^& D# i
- x = 'D';
. X' E, P* P: K2 H0 n: K - n = len(arr); 0 j- S& b8 k' m9 a9 |$ U+ _
- result = search(arr, n, x) 5 N$ n3 |' C. C. N- ?& ]; _; S
- if(result == -1): 6 X+ e, F" }& u
- print("元素不在数组中") & O0 D, `& Y& I G7 |9 M
- else: 5 ^% d( Y* Q# \& {# m$ M
- print("元素在数组中的索引为", result);
复制代码 执行以上代码输出结果为:
1 }* Z' B% |+ ` x Q; y$ m4 E& a$ j, b6 I. T
案例1:- def LinearSearch(list):
3 E0 X+ P9 E1 ^1 c* G - num = int(input('Number:\t'))7 X7 w9 i4 j; I- V1 G$ l
- counter = 0
, P2 F! G$ q0 h. ]7 l1 U( k - null = 0
( J: n, B( o8 D5 ~1 J - ! h4 P. W5 K2 i+ o, L8 i
- for i in list:
% N; N7 e$ d" f$ l. j$ s# D# s4 r - if i == num:) [* v6 p" S% ?
- print('Find number {} in place {}.'.format(num, counter))
) t# f t2 g" k/ _% B - else:
- x' S1 T. u. m" _ - null += 1
0 u; k6 l0 k" z8 H: N$ V - counter += 1
; b% R; n/ p, Y u+ ^* e o - if null == counter:) L% T6 x$ ^# _4 n [
- print('Don\'t find it.')3 O! K# T6 V- q- ]7 h) b+ F
+ F R7 J# Z9 ]% H9 S- list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]
' G! F5 M* X2 {2 A# Z - LinearSearch(list)
复制代码 案例2
" u7 |/ t9 V6 \2 r8 K4 x: B- def LinearSearch(num=50):3 U1 g$ J# h/ e$ }6 z/ R% k
- import random( n. n0 Q: N! v& p4 y r) S
- random.seed(888)5 t+ K: S7 H- o# T. Z
- data = []
4 `0 ?# {' a& q - for i in range(15):) h3 `/ J7 f2 V( C
- data.append(random.randint(1, 100))
; n; X4 G/ O/ H3 j/ g$ d$ W, ]2 M - data.sort()
; T% X* b; R, n- @ - print(data)
# a" s1 ^+ e1 b$ b3 f$ E - for i in range(0,len(data)):
+ d9 c& Z5 q, f/ ]- a6 ?0 f - if data[i]==num:
0 q5 s9 q$ L) E* F: S3 M9 q; ] - print(i)
& _! U7 {* S7 C+ F9 l" c2 l - break
* T5 m' C) {/ t+ {/ c/ W5 R - else:
4 g5 k: V+ J! T; J$ T; x - print('查无此数')
0 }3 J1 \: V7 a) ~# U - LinearSearch()
复制代码
- q* m9 D6 c& s/ N0 @0 M2 n6 ~
/ J+ D& r: o- B5 a8 J |
|