|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。 6 k; y& A' ~) i( k+ p
( b5 r6 |' T, M3 T2 m! R
实例- def search(arr, n, x):
! A& E" W% p; k& G -
! H4 m0 Z A0 X; A0 T+ |* ? - for i in range (0, n):
0 Z1 D5 V( w' d - if (arr[i] == x):
: L" q( H: m; e X; U4 ?$ R& S) }" ? - return i;
* y3 d& h9 c& N& T3 N' i0 i - return -1; ( L0 n9 A7 U. m* [ \7 l7 e; F: n/ i
-
; K7 t+ `; k' }, L - # 在数组 arr 中查找字符 D2 T/ a* P8 {/ y, h' c# A, X0 T: j
- arr = [ 'A', 'B', 'C', 'D', 'E' ];
) w- q7 m; N# z! d+ Z+ G# B - x = 'D'; $ m/ F0 ]3 Q2 l7 ~, e
- n = len(arr); ! k9 M8 \$ |/ P$ |' w
- result = search(arr, n, x)
$ j8 r$ d9 x6 C - if(result == -1): 7 [! C* z, W4 K/ ?- B
- print("元素不在数组中") 0 w1 h2 K3 I5 X8 ~/ O
- else:
, V% }- y* h: I6 t. z - print("元素在数组中的索引为", result);
复制代码 执行以上代码输出结果为:& ^9 ^& j0 h, d: \9 w. c
3 j+ X/ u* ?2 x案例1:- def LinearSearch(list):% @( D0 k9 n" J# F; M# W
- num = int(input('Number:\t')) @( V; h m' O% \" Q
- counter = 0
6 k* `5 M \( F/ q0 A ] - null = 0' e' T2 G) {+ H" v4 u
; i+ K2 }- |# E8 W3 [, v- for i in list:; J4 G0 x" G* G8 r7 J3 T1 e; s3 C
- if i == num:, u! b8 S$ J2 O* K
- print('Find number {} in place {}.'.format(num, counter))
3 q- L+ q6 s6 C4 s - else:5 r8 W- h0 @; t# b4 t
- null += 15 a' b: s+ k( Q. I0 N0 H
- counter += 1
. z" V/ z5 W _% B6 ~2 j, |; Y* P4 k( [2 s - if null == counter:" n5 [% r8 N1 g
- print('Don\'t find it.')
$ j! d) k% Z/ l3 }1 r# r - 1 E9 K7 x5 t' o8 x; _: ?8 n" E7 z
- list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]
2 _, K1 j; I5 A- j$ y- E d; O - LinearSearch(list)
复制代码 案例2( D4 V2 J0 d5 K: I! y4 a. W
- def LinearSearch(num=50):1 v! Z$ f# y7 _, ]
- import random
1 t7 r. J9 y& y( _' l - random.seed(888)
- H6 h: e* B* s/ r+ v - data = []
; A% Q1 h+ O3 ^8 e- z% J - for i in range(15):0 j8 c3 j$ D! O8 C" ]& }9 q
- data.append(random.randint(1, 100))4 o: L3 f% F5 t0 F3 R) Y0 V( T O
- data.sort()
* \ C3 d |" i/ X7 w: H% @+ v - print(data)
8 m6 Q+ l* _. O0 E# l( T Y% U# } - for i in range(0,len(data)):
' @4 U$ L: i0 H+ b+ @3 p - if data[i]==num:
/ C) u: w7 v* |) Q2 w - print(i)& r1 z8 t% o5 Q( t& _
- break
1 p B; }8 ~6 z) A0 ]9 ` - else:
, e+ a' m0 E6 R7 R& D - print('查无此数')* \* V. k, _' L; y1 Z, |
- LinearSearch()
复制代码
/ ^- H1 D5 @' o9 P0 X% k% g2 }. W, T$ f/ N9 Y$ U, f! |) y5 k1 B f
|
|