|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。 3 U% Q3 v$ n6 [+ E3 r
* N# d( ~6 R" `* q% z
实例- def search(arr, n, x): ; m8 x4 M4 q2 b8 @ \6 x' k
-
4 [! w$ c2 \; K( [9 c; [. j5 d - for i in range (0, n):
' o+ Q- d1 Y B/ \* \0 R - if (arr[i] == x):
' [9 k1 ~( V7 a5 |4 H& J2 j1 | - return i; 3 y9 a! A8 g% Z% U+ o `
- return -1; - H2 U& D" @ d! G- d1 J
- 5 b9 r( X: \8 S* D) H
- # 在数组 arr 中查找字符 D3 ^" b) s1 {8 t6 q: f
- arr = [ 'A', 'B', 'C', 'D', 'E' ]; : _" k3 F$ h A& @( h U, D
- x = 'D';
m8 C+ M0 o2 Q/ E9 j& R; w/ X! Y - n = len(arr); 1 R/ m- l8 G# z9 b! m- w3 l/ |
- result = search(arr, n, x) + H1 M1 ~% w, v. ~7 J
- if(result == -1): ' W. h! X+ p$ D) C
- print("元素不在数组中") - S. J+ g" _* U; I* j
- else:
6 k g6 n; P: O* U6 f! e - print("元素在数组中的索引为", result);
复制代码 执行以上代码输出结果为:! W! n+ E, L' Q( I5 p+ `
. a/ ^% |2 g0 P, g# t {
案例1:- def LinearSearch(list):
2 h' N7 d. g! r2 d3 _/ F/ \* n | - num = int(input('Number:\t'))
# Y% k% {% x2 V1 W7 c0 b0 X - counter = 0
) ^7 e/ R. V; l1 Q% A6 {& ? - null = 0
! F( K, K+ V9 w h) r
5 y! H$ D3 { \9 X. R- for i in list:1 r1 t- n7 l$ j$ w
- if i == num:: s, z" ~! d% w6 V# J
- print('Find number {} in place {}.'.format(num, counter))
5 n* s$ Q6 `, u8 ~6 X8 e. ` - else:
( o! w3 v7 X$ ` - null += 1
9 X# p" M# k1 I; D - counter += 1+ v& b6 v/ W3 Y" a) ]7 ^5 `1 I
- if null == counter:
$ m/ g! y y: ~2 H" c* G - print('Don\'t find it.')
: b. F8 j' h1 D: ` - . z3 G& T L: s/ G' l0 y" Z
- list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]
+ D8 G. u8 z9 H: f. p/ {0 | - LinearSearch(list)
复制代码 案例2
( |; r+ A: }, M2 P* e1 g# L s- def LinearSearch(num=50):
) G+ T, N; k7 F4 M) @ A - import random
0 J0 K) n7 J. a$ D+ P - random.seed(888)
# p9 ] q* D( o1 q - data = [] D1 U6 \9 D& w/ o3 q
- for i in range(15):$ o# Y! o) g4 _$ u
- data.append(random.randint(1, 100))
0 l) |2 O$ u G" X0 \2 s9 T - data.sort()4 p( { n' {! |" V$ y
- print(data)
/ d" B B8 I1 ?( i, R - for i in range(0,len(data)):
5 ?9 p; q' _# O4 T: \ - if data[i]==num:6 w1 a/ c# Y: C- B
- print(i)
" P( K# U/ e' R7 Q) I8 k3 ` - break8 P0 T" T- [8 S& y* @
- else:4 ^, [- w! b3 k
- print('查无此数')
( Z2 q( `; [0 ^ - LinearSearch()
复制代码
8 }$ P- _4 y$ w' k& L& r E$ D. o" w& N- s
|
|