|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。 & Y' C6 D! J/ ?: E9 s; R
$ \7 L6 v- q O9 O& w. J) Y* G实例- def search(arr, n, x):
* ~* l( g6 P3 T -
! i# S0 |/ Y; y' e- Z - for i in range (0, n):
; n, o9 i. y# f: |# X. @& ~4 Q - if (arr[i] == x):
& B1 n: N+ N# b% m/ g2 t, a$ B - return i;
9 ~8 Z, L! e( H/ t" h! b - return -1;
1 P! h" _) ~. G( L- s' @7 K, E -
6 D+ D: a' J( V3 P$ _ - # 在数组 arr 中查找字符 D$ F! A. m; Q6 O6 ~, _+ Q
- arr = [ 'A', 'B', 'C', 'D', 'E' ];
2 g$ w' I9 {! T+ d - x = 'D'; ( o, B" ^8 t2 r5 S1 J4 q/ u1 ^
- n = len(arr);
( x7 z5 l8 m& r5 M' e - result = search(arr, n, x) + z0 t8 G/ z" u
- if(result == -1):
( X9 e7 v0 K% s9 j6 E - print("元素不在数组中") 7 `0 m( W/ h6 R& O4 e1 e% f
- else: * `- J# P* H0 Y+ U' t
- print("元素在数组中的索引为", result);
复制代码 执行以上代码输出结果为:2 l8 w* _# G7 [/ ^; w
( q/ O( x4 n( r, ]* S- p# M/ X
案例1:- def LinearSearch(list):6 `4 B/ F: F8 m
- num = int(input('Number:\t'))! {. J2 i& _, h5 H2 ^3 s
- counter = 0, M* x7 h- p/ k+ ]; m; `4 g
- null = 0) y8 E+ q _* z$ U8 f2 n/ _! ?
- ; D5 X B0 C; Y. M( H" j' R
- for i in list:
. A7 I" l& a7 X- z# Y, w - if i == num:% G& Q) H) O' T2 l/ \
- print('Find number {} in place {}.'.format(num, counter))1 F3 H! d; J, |
- else:3 y, t0 Z( M$ c+ A8 K
- null += 15 J- y& V i8 F1 H
- counter += 1# P+ c+ T' X3 e% J& x9 H3 S
- if null == counter:1 ^; V) d( M1 W; i" H* I
- print('Don\'t find it.')
. n/ {7 n* O9 L0 n7 Z4 j- ~ - : C, z4 M: Z0 [ p, _% w
- list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]# v7 D1 Q( F7 c, w' ^
- LinearSearch(list)
复制代码 案例2) \ T b9 D4 k
- def LinearSearch(num=50):
h, d9 C2 L0 B- u - import random" m r- H. p' S2 C2 v, O! p
- random.seed(888)
5 p1 B3 L# e3 O- @1 d - data = []
" e' d3 f' \: k* V9 X& h" ^ - for i in range(15):
" D6 Q0 a6 P) c2 n - data.append(random.randint(1, 100))
. u0 u: Z; E4 e0 o - data.sort()& `# s, H) Z7 Q0 x4 |
- print(data)
4 @. d- [( @% I: k - for i in range(0,len(data)):8 _) z: x8 n( ~
- if data[i]==num:
8 R% S. v: P( n, y# Z - print(i); _; Y: ?. F/ w/ Z0 c J3 m
- break
# S8 N5 B6 b! R) p. ]; X - else:
* T. U7 n* f) ?- P: |$ } - print('查无此数')
8 S# {2 w. k( ?0 V - LinearSearch()
复制代码 ( |" z% e1 _% A1 Z0 L5 w- C
: m; s+ b4 p6 ]
|
|