|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。 4 E+ I9 j' @4 E) H r$ ^
; a, O+ n/ F; R |) F实例- def search(arr, n, x): 2 L( q% [8 [8 R
-
j; G4 I( _0 h' w - for i in range (0, n):
# s+ G; Y/ b. ~& Q; I! w - if (arr[i] == x):
4 k5 p9 |: j5 d' b& q- K - return i;
A+ n; ?7 ~ ~) p! L* ^1 K - return -1; 6 d P9 ~, D* X8 ~' _8 Y0 w
- 2 R3 L$ T: n& [2 M( B
- # 在数组 arr 中查找字符 D. n; _* v: p; y& b# W! e6 ^
- arr = [ 'A', 'B', 'C', 'D', 'E' ];
8 z4 T/ U' G' |( R. S! m - x = 'D'; 4 }: |2 o. |* S# r J1 A& e5 Z
- n = len(arr);
6 M1 o& b8 [( X4 |4 m2 k! B - result = search(arr, n, x)
) ~4 ^0 m4 r) h. k! J3 O: i - if(result == -1):
( z, J. v& V6 S6 q, D& I - print("元素不在数组中")
* }6 D" F' t4 Q( k - else: ) [: L- @7 j/ z" J" }. e: W
- print("元素在数组中的索引为", result);
复制代码 执行以上代码输出结果为:+ F4 w% r3 C& b$ Z
2 J" ?% }6 j5 l q$ q, X
案例1:- def LinearSearch(list):+ x u9 t9 y6 T: D; K# q/ Y
- num = int(input('Number:\t'))
+ `! r. H' B8 [ n! ^# W - counter = 0
) w$ _, U) E! l- V, `% M/ k* K6 e - null = 0# s* i# ]; W3 R ]' E4 q: I
- . E- |$ E" `0 l; b
- for i in list:/ H6 i G; Y( R( Y
- if i == num:3 I( F% ]6 a0 ]) p" L) B
- print('Find number {} in place {}.'.format(num, counter))
6 ~* z0 \' \. R5 T0 n: z* i - else:, B( _) I! W+ }: R1 P
- null += 1$ }6 X7 A; ?$ W; |
- counter += 1* L: [( z; h: h: U
- if null == counter:7 `7 B- N j# N: I/ }
- print('Don\'t find it.')2 R1 E! Z: Q8 E4 N: A- Z& z) t
- A( I+ g: K: U) _ t8 ~3 a0 }- list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]
- m, S* R! Q1 w3 h% i& j; h - LinearSearch(list)
复制代码 案例2
( V! c! `% r+ v1 W* ?- def LinearSearch(num=50):3 C4 x& y- T0 T) ^0 u
- import random E, x/ r+ |' {6 l: `
- random.seed(888)% G7 |1 u0 h9 w
- data = []
7 A5 ?: R2 F/ b) u; [2 p& r+ | - for i in range(15):
0 z0 m2 H# K/ }3 e - data.append(random.randint(1, 100))7 E p" `7 k! T+ t# {8 S
- data.sort()
- o) u2 [* ]$ o5 P, t1 M M - print(data)4 J C7 u1 ]7 \ K. N' u8 P
- for i in range(0,len(data)):
; z5 Y* Z. o6 }: l* k" A - if data[i]==num:/ T; x4 ?) f* e/ ?0 Z5 Z! y* ?
- print(i)
, E" Q- i" B! s. v - break
$ O9 w( i* x7 e: U0 f - else:; Y* A+ } l* V+ Q; D a5 D `
- print('查无此数')
5 c) e) m& p! M) c$ @4 e( c - LinearSearch()
复制代码 9 e7 a2 w- t- b& K+ L _( d
# A: p/ g3 j: [5 q8 B- g |
|