|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。 ! q6 g. x8 y+ S
* }' ~8 [! r# {/ U, K9 J实例- def search(arr, n, x):
0 W m2 H; M4 ^ -
2 I& V! r5 H' r - for i in range (0, n):
& x `6 |- i. O$ i% t - if (arr[i] == x): 2 l, w! K* B; W! c5 Y2 e7 j
- return i; 7 I: Y8 p+ ^" _: C$ q% a- N
- return -1;
6 G, T8 i( Y( e0 D, ^4 S9 z -
/ o' G, G8 ?; k3 ` - # 在数组 arr 中查找字符 D1 x g0 U: ]) i2 u! U
- arr = [ 'A', 'B', 'C', 'D', 'E' ];
* O! A2 L+ r+ t8 W6 @. B* T+ n - x = 'D';
' |" d' x) ]/ K3 w: o - n = len(arr); / O2 ]& A' m6 o; h
- result = search(arr, n, x) ! |- c0 V6 q! i" ]1 k* l
- if(result == -1): ) y& Q1 v# q( g6 c5 R0 D G2 ?; v$ T
- print("元素不在数组中") ' T- C3 C6 F* k9 V* C6 d
- else:
2 u# i. O2 h' E/ y - print("元素在数组中的索引为", result);
复制代码 执行以上代码输出结果为: H1 r" v& V( L6 m; a+ q
# i8 D2 B% c" t$ w0 t' n案例1:- def LinearSearch(list):
1 ?; A& @2 T R7 M e0 x: o - num = int(input('Number:\t')). P# H) t- w, q |' Q! ?
- counter = 0
# t3 P9 G4 x$ E/ ^0 I1 I - null = 0
$ s1 x1 q; z6 I" `7 m3 S - 4 w- C$ f$ C* w3 S
- for i in list:
) d+ p6 b% ~3 o- w: ?6 P" K - if i == num:
! d7 b" ^: R2 R, w3 }( T - print('Find number {} in place {}.'.format(num, counter))( K6 u: Q- N4 {# ^! o/ j0 N
- else:
# Q/ ?2 ?2 L' [+ n - null += 1 b* r$ J" \$ t7 q+ s+ H' }
- counter += 1+ d+ f, D! x: L3 @& N
- if null == counter:
. n; t4 J. H' r" S/ P% f" K5 ~ - print('Don\'t find it.')/ P& ~5 j: }1 n% V: W! d
- ; P2 L0 q- F: |# Q% k6 S# i3 {
- list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]
. s$ Y, a8 i( S! \ - LinearSearch(list)
复制代码 案例2( H: C! S# {) i9 i) S) [
- def LinearSearch(num=50):8 X7 N, G1 X. z9 c6 n8 |9 P
- import random& k2 t& F6 V$ v" W7 z
- random.seed(888)7 M' Z% T1 j- z. J, s8 o
- data = []9 v- |+ E8 L/ w( z2 r
- for i in range(15):8 R! k% V0 S& O5 t+ G
- data.append(random.randint(1, 100))# {& }2 o& |+ M
- data.sort()6 N. P6 F7 X) h% S j& I
- print(data)8 i) |, X+ i/ T/ D
- for i in range(0,len(data)):9 g$ ]3 b( _: i" D
- if data[i]==num:
: c4 p/ F z4 X; M& q) ~2 h0 r6 j - print(i)
/ g* c" v3 x/ t2 b! f - break
$ s: p. C& ~7 g; `$ L - else:
5 n4 O% t) y3 ?7 Q - print('查无此数')
) O+ J5 f5 A5 V. v z - LinearSearch()
复制代码
- E( @6 F. S! _" z2 j& N+ ?/ M" F5 \3 B0 U
|
|